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

来源:互联网 发布:淘宝店认证步骤如下 编辑:程序博客网 时间:2024/06/05 18:11

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了



原创粉丝点击