vc2005下使用vc6编译的库可行吗?

edwardlj 2007-06-11 05:56:43
我想在vc2005下使用由vc6编译的库文件(静态、动态、release、debug都行),不知道这是否可行,我尝试了多次都是不行,那位兄弟知道请指教
...全文
578 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
因为依赖的运行库lib不一样噢
vc6依赖的是msvcrt vc8依赖的是msvcrt80 之类的
所以无法链接的.
静态库的话必须使用同一个编译器,使用相同的编译选项编译.
标准dll的话倒是可以不同编译器混合使用的
edwardlj 2007-06-11
  • 打赏
  • 举报
回复
antlrd.lib是我使用vc6编出来的,在vc2005下编译是通过了,但是连接时出了问题,如下


1>Linking...
1>LINK : warning LNK4076: invalid incremental status file 'g:\UtcGen\UtcGen\M2C\M2C.ilk'; linking nonincrementally
1>libcpmtd.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::_Lockit(void)" (??0_Lockit@std@@QAE@XZ) already defined in antlrd.lib(TokenStreamSelector.obj)
1>libcpmtd.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ) already defined in antlrd.lib(TokenStreamSelector.obj)
1>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::bad_cast::bad_cast(char const *)" (??0bad_cast@std@@QAE@PBD@Z) already defined in antlrd.lib(Parser.obj)
1>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::bad_cast::bad_cast(class std::bad_cast const &)" (??0bad_cast@std@@QAE@ABV01@@Z) already defined in antlrd.lib(Parser.obj)
1>LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: virtual __thiscall std::bad_cast::~bad_cast(void)" (??1bad_cast@std@@UAE@XZ) already defined in antlrd.lib(Parser.obj)
1>LINK : fatal error LNK1104: cannot open file 'libcpd.lib'
1>Creating browse information file...
1>Microsoft Browse Information Maintenance Utility Version 8.00.50727
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Build log was saved at "file://g:\UtcGen\UtcGen\M2C\Debug\BuildLog.htm"
1>M2C - 6 error(s), 1 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
CathySun118 2007-06-11
  • 打赏
  • 举报
回复
可以
Stefine 2007-06-11
  • 打赏
  • 举报
回复
你碰到的问题详细描述出来看...
eduyu 2007-06-11
  • 打赏
  • 举报
回复
既然是binary了,都可以跨编译器了,怎么不能跨一个编译器的不同版本呢?
  • 打赏
  • 举报
回复
通常可以.
但有些库的语法不规范,vs2005的语法检查严格,可能需要自己修改部分的代码.
feizhuangxuan 2007-06-11
  • 打赏
  • 举报
回复
可以的,有很多老的应用是在MFC下面的啊,但是我建议,C++CLI比以前的好多了,可以试着转过去
lixiaosan 2007-06-11
  • 打赏
  • 举报
回复
vc2005 use UNICODE characters by default.
DentistryDoctor 2007-06-11
  • 打赏
  • 举报
回复
当然可以,你说的不行是不是因为编译选项不兼容?

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧