Maybe post some of the build log - something is causing the DLL runtime to be in the link step.
Make sure you clean everything and perform a full rebuild. If that doesn't help, make sure there aren't any file-level project settings for one or more source files, which might be cause it to be rebuilt to link against the DLL runtime. As far as I know there's no easy way to identify such file-level overrides form the IDE. Looking at the build logs or the .vcxproj
file directly in a text editor might help with narrowing that down. If you look in the .vcxproj
file, a source file with project overrides will have XML elements for the overridden settings in the file's <ClCompile>
element, where most <ClCompile>
elements will have no sub-elements.
Finally, if it's not too big, you may want to see if recreating the project from scratch helps (I know it's drastic and shouldn't be necessary, but sometimes it helps get rid of weirdness).
As a side-note, MSDN says (http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx):
Because a DLL built by linking to a static CRT will have its own CRT state, it is not recommended to link statically to the CRT in a DLL unless the consequences of this are specifically desired and understood.
By the way, _Container_base12
is a type used for iterator checking/debugging - that's why you don't see it or any of its member functions directly in any of your source files. You should make sure you aren't doing anything incorrect with the _HAS_ITERATOR_DEBUGGING
and _SECURE_SCL
macro settings. But I don't think that has anything to do with your specific specific problem. If you end up thinking they related to your problem, you might want to check out: