区别是动态链接还是静态链接C运行时库(C runtime Library, CRT)。
如果是动态链接(MD/MDd),你的程序就依赖C运行时的动态链接库(比如VS2010的msvr100.dll),当你的程序在其他没有这个dll的电脑上运行就会出现错误(找不到这个dll)。
如果是静态链接(MT/MTD),C运行库直接链接到你的程序里,你的程序就不依赖C运行时库的dll了。
标准WINDOWS库和DLL中使用MFC,都是使用动态链接,那么对应选选择多线程DLL选项,对于静态库中使用MFC,那么对应的调试选项选择多线程既可。
注意:对于 exe依赖的DLL或.lib,下述选项需要保持一致,否则如即使编译通过,程序运行时,也可能崩溃。


微软是推荐是用动态链接的,因为这种链接方式可以减少可执行文件的大小、可以减少内存的使用、避免链接问题。
本文解析了动态链接和静态链接C运行库的区别,阐述了MD/MDd与MT/MTD模式的应用,强调了MSVC中MFC使用情况,并指出微软推荐动态链接的原因。注意保持exe与DLL/lib的一致性以确保程序运行稳定。
3199

被折叠的 条评论
为什么被折叠?



