情况描述:接收远程队友的C++代码,基于vc120工具集(VS2013),而我的机器上是VS2015,需要安装VS2013(只选MFC,除主程序与MFC外其余的组件全部卸掉)。然后开始编译,提示 MSB803 错误:说多字节已经被弃用。
因此需要下载 vs_mbcsmfc.exe,下载后安装失败。
再安装,还是失败。查看日志文件无果,百度,bing,微软社区搜索无果,几近绝望。启用PlanB,那就是把工程属性改为Unicode,手动把代码中的所有字符串用 _T() 宏包裹起来,同时,把 stoi 更改为 _wtoi,同时写了个公共类,用于把 CString类型转换为 char* 类型,以满足底层调用约束。
搞了三天,最后编译仍然出错,提示找不到 mfc120d.lib,mfcs120d.lib,手动在设置里忽略,仍是报错,提示链接错误。
C++的虐心啊。
休息半天之后,我决定重新再来一遍,从下载 vs_mbcsmfc.exe 开始,这次居然安装成功了,不知道该哭还是笑。官网提示文件大小有64M,而我几天前下载得到的文件是50M,居然可以运行。
然后顺利编译。
高兴不了多久,又发现代码中引用了一个第三方的lib,貌似是作者自己写的,使用了一个工厂方法,返回一个基类,调用其虚函数,提示 “函数XXX的地址不存在,可能是编译器优化的结果”。
不管怎样,代码能编译了,这就是进展吧。