有两个问题让我困惑:
发布于 2012-08-08 09:43:50
( 1)不,这不是要求。在任何程序中都会发生这种情况,例如Windows DLL使用自己的CRT。然而,在一个程序中混合CRT是非常危险的,并且可能导致很难诊断问题。Windows是为了避免这些问题而精心设计的,它们从不需要代码来释放在DLL中分配的内存,不使用异常,不使用标准的C++库类,不依赖于地区或任何其他类型的共享CRT状态。当你混在一起的时候会出错的事情。限制自己使用C或COM非常有助于避免这些陷阱。
2)当您链接使用/MD编译的代码时,就会发生这种情况。在.libs链接中很常见。
当项目中有DLL并使用完全相同的编译器和选项编译所有代码时,请始终使用/MD避免麻烦。你自己没有构建的静态库是非常麻烦的,避免它们。
发布于 2012-08-08 08:50:18
关于你的第二个问题,依赖性是间接的。DLL使用依赖于MSVCR100.dll的DLL。使用依赖步行器,您可以看到组件的依赖树,并查看哪个库直接和间接依赖。
https://stackoverflow.com/questions/11857897
复制相似问题