error MSB8031 、error LNK2026

本文针对使用VS2013及其以上版本编译环境中遇到的MFC项目编译错误MSB8031及LNK2026提供了解决方案。对于MSB8031错误,可通过安装vc_mbcsmfc.exe来解决;而对于LNK20226错误,则需要调整项目属性中的链接器设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

error MSB8031: Building an MFC project for a non-Unicode character set is deprecated.

在用VS2013及以上编译环境编译旧版本的代码时,经常会出现这类型错误,错误原因也就是代码使用了non-Unicode character set (MBCS)。
至于unicode介绍可参考:unicode-wiki
字符编码类型起源及发展可参考softman11的博文

解决方式可参照Microsoft engineer blog
安装vc_mbcsmfc.exe 到VS2013安装文件夹,比如:D:\Program Files\Microsoft Visual Studio 12.0 。当然,这个安装路径由你原先安装VS2013软件路径决定。

error LNK2026: 模块对于 SAFESEH 映像是不安全的。

解决方法步骤:
1.打开项目的“属性页”对话框。
2.单击“链接器”文件夹。
3.单击“命令行”属性页。
4.将 /SAFESEH:NO 键入“其他选项”框中,然后点击应用。

1>xt_lib_uf.lib(xt_windows.obj) : warning LNK4099: 未找到 PDB“xt_lib_uf.pdb”(使用“xt_lib_uf.lib(xt_windows.obj)”或在“F:\code\CncAutoDrlHole\find_std_xuti_subtract\find_std_xuti_subtract\x64\NX12\xt_lib_uf.pdb”中寻找);正在链接对象,如同没有调试信息一样 1>find_std_xuti_subtract.vcxproj -> F:\code\CncAutoDrlHole\find_std_xuti_subtract\find_std_xuti_subtract\x64\NX12\find_std_xuti_subtract.dll 1>find_std_xuti_subtract.vcxproj -> F:\code\CncAutoDrlHole\find_std_xuti_subtract\find_std_xuti_subtract\x64\NX12\find_std_xuti_subtract.pdb (Full PDB) 1>The MSVCDir environment variable is not defined 1>This variable is necessary only when using uflink or starting up Studio 1>from this window. You must modify the ufvars.bat file to define this. 1>Error signing application, F:\code\CncAutoDrlHole\find_std_xuti_subtract\find_std_xuti_subtract\x64\NX12\find_std_xuti_subtract.dll. 1> Application has not been compiled with NXSigningResource.cpp. 1>Checking for the presence of c_p_p_author license. 1>Signing files... 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: 命令“call "E:\UG\NX12.0\ugii\ugiicmd.bat" "E:\UG\NX12.0" 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: "E:\UG\NX12.0\NXBIN\signcpp.exe" "F:\code\CncAutoDrlHole\find_std_xuti_subtract\find_std_xuti_subtract\x64\NX12\find_std_xuti_subtract.dll" 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5): error MSB3073: :VCEnd”已退出,代码为 -1。 1>已完成生成项目“find_std_xuti_subtract.vcxproj”的操作 - 失败。
最新发布
03-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值