在vc6的project中引入vs2005生成的lib的总结

1.lib的生成可以用 win32  静态连接库工程可以生成

2.会有下面一些问题:

在vs2005上生成lib,VC6中引用此lib的,在link的时候报错了。

INK : fatal error LNK1196: invalid or corrupt import object: unknown version

这个问题,是配置问题(在VS2005中进行配置),需要知道静态库的版本,设置了property->general->whole Program Optimization 中的选项,设置为No Whole Program Optimization。

再编译vc工程,发现报了N多的link error。

主要有:

error LNK2001: unresolved external symbol __RTC_CheckEsp;

error LNK2001: unresolved external symbol __RTC_Shutdown;

error LNK2001: unresolved external symbol __RTC_InitBase;

error LNK2001: unresolved external symbol @_RTC_CheckStackVars@8

觉得还是配置的问题,在property->c/c++->code generation->basic runtime check->设置为default。

以上问题ok。

error LNK2001: unresolved external symbol ___security_cookie;

还是配置问题

在property->c/c++->code generation->buffer check设置为no

以上问题ok。

解决。

 

 

产生:
在VS2005安装SP1之后,build工程过程中出现错误。错误出现在build过程的link阶段,编译正常。

错误信息:
1>Linking…
1>qtmaind.lib(qtmain_win.obj) : fatal error LNK1103: debugging information corrupt; recompile module

解决方法:
在网上找了很久,大伙都是讲的调试VC6工程时出现这个错误的情况。是要把Tool -> Options -> Directories(VC6是这个,VS的是Tools -> Options -> Projects and Solutions -> VC++ Directories),将Include files和Library files中SDK的顺序放到最下边或者直接删掉较新的SDK。此方法对我遇到的错误无效。

在微软网站找到这个http://support.microsoft.com/kb/974193/。说错误的原因是链接器(linker)的bug导致了这个错误的产生。要解决这个问题只要关闭工程的程序数据库(program database,PDB)文件的生成即可。操作如下:

在Solutions Explorer中选中工程,点右键选Properties -> Linker -> Debugging,不用调试信息关闭.这样就OK了



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值