VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 656|回复: 4

VC6.0的LIB在VS2012上异常,LNK2019异常

[复制链接]
89_avatar_middle
最佳答案
0 
在线会员 发表于 2019-2-13 11:57:07 | 显示全部楼层 |阅读模式
6驿站币
        背景:因特殊原因必须使用VC6.0编译的静态库LIB文件,没有LIB源码(只有.lib和.h文件)。现在VS2013上开发,编译报错异常:
        error LNK2019: 无法解析的外部符号 "public: __thiscall CString::~CString(void)" (??1CString@@QAE@XZ),该符号在函数 "public: int __thiscall XXXXXX中被引用。(XXXX为LIB中某函数)。
        1.网上很多资料说LNK2019是因为包含问题,但是我的工程中几个包含目录和附加依赖项都设置了,仍然报错。
        2.另一个说法,CSTRING类有MFC和ATL不同版本,容易搞混;这个找不到区分方法。
        3.MFC窗口、DLL库工程等都试过,现象一样;
        求大神帮忙,看看如何在VS2013上正常调用该文件。谢谢!






上一篇:DuilibのListUI
下一篇:PE 函数 将硬盘中的文件读取到缓冲区 为什么第二个参数必须是2个*
81_avatar_middle
最佳答案
3 
online_supermod 发表于 2019-2-13 23:20:41 | 显示全部楼层
CString 的源码在 VC6.0 中和 VS2013 中的差别应该挺大的
所以你用vs2013去调用VC6 生成的lib可能会报一些错误。
想到了一种办法,那就是用vc6写一个dll,用这个dll将lib包装一下,之后让vs2013动态加载这个vc6生成的dll,这样应该就可以了,不过不知道是否满足楼主的需求
89_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-2-14 08:47:40 | 显示全部楼层
Debug 发表于 2019-2-13 23:20
CString 的源码在 VC6.0 中和 VS2013 中的差别应该挺大的
所以你用vs2013去调用VC6 生成的lib可能会报一些 ...

DLL调用就不会限制了吗?
可以试试看
89_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-2-14 10:42:46 | 显示全部楼层
按照“Debug”描述的,在VC下做动态库,再在VS2010下做个临时工程调用,LNK2019异常如图,包含路径设置如图。是哪里设置问题吗?

包含文件

包含文件

异常

异常

USBIMPORT.rar

208.28 KB, 下载次数: 1

81_avatar_middle
最佳答案
3 
online_supermod 发表于 2019-2-14 21:42:30 | 显示全部楼层
lebochen 发表于 2019-2-14 10:42
按照“Debug”描述的,在VC下做动态库,再在VS2010下做个临时工程调用,LNK2019异常如图,包含路径设置如图 ...

我说的是动态加载DLL,用函数指针的方式调用DLL中的函数应该就可以了
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2021-1-17 05:20

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表