打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VC7/VC8开发的库在VC6中的使用问题

        现 在,微软一些新的SDK基本上都是用VC7/VC8(即VS .NET 2003/VS 2005)来开发的,当我们用VC6使用这些库的Debug版本时就会发生链接错误,对于我们自己用VC7/VC8开发静态库或动态库也存在同样的问题, 这主要是由于VC7/VC8使用了不同的调试信息格式以及增加了一些安全检测机制造成的。

我们可以在VC7/VC8中修改一下工程的配置信息使其能够被VC6使用,具体操作如下:

 

        1. 打开工程设置界面,选择C/C++属性页,将“常规(General) -> 调试信息格式(Debug Information Format)” 改为“禁用(Disabled)”。

如果不进行此处修改,VC6在链接时将出现如下错误:

fatal error LNK1103: debugging information corrupt; recompile module
 

        2. 将“代码生成(Code Generation) -> 基本运行时检查(Basic Runtime Checks)”改为“默认(Default)”。

如果不进行此处修改,VC6在链接时将出现如下错误:

error LNK2001: unresolved external symbol __RTC_Shutdown
error LNK2001: unresolved external symbol __RTC_InitBase
error LNK2001: unresolved external symbol __RTC_CheckEsp
error LNK2001: unresolved external symbol @_RTC_CheckStackVars@8
error LNK2001: unresolved external symbol __RTC_UninitUse
 

        3. 将“代码生成(Code Generation) -> 缓冲区安全检查(Buffer Security Check)”改为“否(No)”。

如果不进行此处修改,VC6在链接时将出现如下错误:

error LNK2001: unresolved external symbol ___security_cookie
error LNK2001: unresolved external symbol @__security_check_cookie@4

经过上述修改后,实际上生成的Debug版本已经不含调试信息了,因此我们也可以让VC6下的Debug版直接使用VC7/VC8编译的Release版,不过要注意修改Release版的运行期库类型,使其与VC6一致。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
error LNK2001: unresolved external symbol 解决办法
VC++ 连接错误
error LNK2001: unresolved external symbol
分享:LIBCD.lib(crt0.obj) : error LNK2001: unres...
解决error LNK2001: unresolved external symbol
[原创]VC++调用易编DLL的方法(静态库导入)|易语言俱乐部
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服