由于好久没有使用过这台电脑上的VS2019了,今日做一个小test的时候,发现Debug模式突然无法调试运行,Release模式则没问题。百度则是千篇一律的下载dll文件,可问题是我的系统文件夹下所有dll文件都是齐全的。
经过查阅,发现是VS的代码生成模式不正确。
在Visual Studio中,依次选择Project -> Properties - > Configuration Properties -> C/C++ -> Code Generation ->Runtime Library,调试模式选择Multi-threaded Debug (/MTd),发布模式选择Multi-threaded DLL (/MD)。这样,VS在生成调试模式下的二进制文件时,就会把运行时库的一些代码静态编入,同时这也是为什么debug版本的二进制文件往往非常大的原因。
同理,设置为/MDd模式,把所需要的运行时库的dll文件拷贝到对应的二进制文件同级目录,达到的效果是一样的。
关于/MD、/MTd等模式的介绍,可以详见微软文档:/MD、/MT、/LD(使用运行时库),简单概括就是/MT使用多线程静态编译,/MD使用多线程和使用DLL文件,/MTd使用多线程静态编译并生成调试信息,/MDd使用多线程和DLL文件并生成调试信息。