多字节与宽字节设置不同导致的DLL静态链接失败

本文讨论了在使用静态链接方式将DLL文件与程序结合时遇到的“无法解析的外部符号”错误。问题源于DLL文件与程序使用的字符集不同。通过将DLL文件修改为与程序相同的Unicode字符集,成功解决了该问题。同时提到,使用动态链接则不会出现此问题,但在使用不同字符集时,需注意函数调用时的字符转换。

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

今天把以前做的一个DLL文件用静态链接方式链接到程序里去,最后编译时总是提示“无法解析的外部符号”这个错误,我仔细检查了引入库的目录设置,lib文件的导入设置,却没发现任何问题。正在郁闷时,我想起了我的DLL文件是使用的Unicode 字符集,而应用程序用的是多字节字符集,于是尝试着将其也改为Unicode 字符集,然后编译,通过了。

这个问题以前还从来没注意过,现在记下来以备以后忘记了再看看。

顺带提一下,如果用的是动态链接,则不存在这个问题,不过如果DLL与APP使用不同的字符集的话,在使用函数时,就需要转换字符了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值