我正在研究一个永远存在的C程序。我最近从VS 2010迁移到VS 2012.我构建了一个在我的计算机上工作正常的可执行文件,但是当其他人尝试使用它时,他们会收到一条错误消息,指出MSVCP110D.dll丢失,尽管该程序是在发布模式下构建(这个程序在其他具有旧版本VS的计算机上运行良好,我知道在程序中我没有改变任何与此问题相关的内容)。为了解决这个问题,我从头开始构建了一个测试程序,如下所示:
#include <stdio.h>
void main()
{
fprintf(stdout, "Hello, world!\n");
getchar();
fflush(stdin);
}
我在发布模式下编译它。我的选择是: / GS / GL / analyze- / W3 / Gy / Zc:wchar_t / Zi / Gm- / O2 / sdl /Fd"Release\vc110.pdb“/ fp:precise / D”WIN32“/ D”NDEBUG“/ D” _CONSOLE“/ D”_UNICODE“/ D”UNICODE“/ errorReport:prompt / WX- / Zc:forScope / Gd / Oy- / Oi / MD / Fa”Release \“/ EHsc / nologo / Fo”Release \“/ Fp “发布\ TestVS2012.pch”
此程序在我的计算机上运行良好,但在另一台计算机上,我得到的错误是MSVCP110D.dll缺失。
在这个测试程序中,我可以通过将/ MD选项更改为/ MT来解决问题,但是此修复程序在我正在使用的较大程序中不起作用。