教材:https://www.zhihu.com/question/25415940
简单的来说就是,想要你的exe独立运行在XP中:
1.将平台工具集选择为"Visual Studio 2013 - Windows XP (v120_xp)"。
用处:运行模式兼容XP
可解决错误:
设置截图:
2.将运行库选择为 【多线程 /MT 】。
用处:将所有的依赖dll静态化打包到程序里面,这样XP没有的DLL也不会报错了
可解决错误:
设置截图:
3.如果使用了MFC,同理的要设置【在静态库中使用MFC】:
这里要记住,自己所引用的第三方DLL,也一定要按照以上3条规则进行配置编译,不然你自己的EXE正常配置了,但是引用的DLL没有配置成兼容XP模式,也会报一样的错。
推荐一个神奇Stud_PE查看器,我就是EXE按照上面的配置编译了,但是总是在XP运行提示缺少msvcr120.dll。
后来用Stud_PE查看,发现了duilib_u.dll居然需要额外引用msvcr120.dll,打开duilib项目一看,真忘记加上这个【多线程/MT】了。
【MD】模式时候的duilib_u.dll:
修改成【多线程/MT】编译后的duilib_u.dll: