在Visual Studio 2008中,我该怎么做才能重新编译我的静态库(最初用VS6编写)?

时间:2010-06-18 14:31:42

标签: visual-studio-2008

  • 有一个静态库A,其中包含由VS6中的C API包装的c ++类。
  • 我使用来自库A的回调在VS6中开发了一个静态库B.
  • 程序C(商业软件)将库B用作“用户定义的库”并链接以生成程序D.

问题:

1)当程序C使用VS 6时,如果VS 2008运行正常吗?因为它没有。 2)当我试图在VS 2008中重新编译库B时,它给了我一个只有28KB的.lib文件,而旧的文件只有2MB。好吗?我可能做错了什么?

提前致谢

2 个答案:

答案 0 :(得分:0)

  1. 不,语言有变化。但是,大多数工作的VC6程序,一旦在VS9中编译,也可以工作。失败的原因是什么?

  2. 听起来很奇怪。也许,某些依赖项已被更改,某些库不再与lib链接。

答案 1 :(得分:0)

非常感谢您的回答!

我用一个更简单的代码做了一个例子,但错误信息是相同的:

LINK:警告LNK4098:defaultlib'MSVCRTD'与使用其他库冲突; use / NODEFAULTLIB:Library

错误lnk2019函数“_Add”中未解析的外部符号“_xsqr”。 错误lnk2019函数“_Subtract”中未解析的外部符号“_xcube”。 dymosim.exe:致命错误lnk1120 2未解析的外部。

其中“_xsqr”是库A的函数,“_ Add”是库B中的函数,dymosim.exe是程序D.错误消息在程序C的环境中给出。