VS2005 Debug版,dll /MTd,exe /MDd 跨dll使用CString的链接错误

原创 2016年06月02日 11:30:53

dll中导出函数
DLL_EXPORT void DoString(CString& str);
如果exe和dll都是/MD,一切正常
如果dll /MTd,exe /MDd 则找不到DoString,错误提示:
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) void __cdecl DoString(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > > &)" (__imp_?DoString@@YAXAAV?$CStringT@DV?$StrTraitMFC@DV?

$ChTraitsCRT@D@ATL@@@@@ATL@@@Z),该符号在函数 "public: void __thiscall CtestexeDlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CtestexeDlg@@QAEXXZ) 中被引用
1>../Debug\testexe.exe : fatal error LNK1120: 1 个无法解析的外部命令
用depend工具查看了dll导出的DoString,两者差距如下:
?DoString@@YAXAAV?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z)
?DoString@@YAXAAV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z

一个是StrTraitMFC,另一个是StrTraitMFC_DLL。
注意:
VS2005中,跨dll操作CString,只有dll和exe都是MD或MT,就正常。不一致,链接时报错。跨dll操作std::string,只有exe和dll都是MD才正常,其他情况不报错,直接崩溃。

版权声明:

相关文章推荐

VS2005 Debug Runtime DLL

  • 2009-06-17 09:32
  • 899KB
  • 下载

vs2005中动态i链接库DLL的一个简单例子

在vs2005中对动态链接库做实验,来一个详细的能跑通的例子: 1、打开vs2005,文件-》新建-》项目,选择“win32项目”,在“名称”中输入“vsdll ”,点“确定”-》下一步,在“应用程...

C#(C Sharpe)百度云推送sdk(DLL版)vs2005可用

在网上找了好久也没找到vs2005的sdk,经过1天的修改后 原来的sdk终于可以放到vs2005上运行了,给大家分享下下先。 (vs2005及以上都能运行) 【引用2个DLL,直接玩转推送...

在VS2005中使用VS2008编写的DLL在有些机器上无法运行解决办法

用VC2005编译的程序,编译时没有任何错误,但是运行时就是提示“应用程序正常初始化失败”!! 查找了各方面资料,做了各种尝试,网上说什么的都有:有让安装vc2005 sp1补丁的;有让安装vcred...

VS2005环境下C#调用C++ DLL 联调(win32及wince)

这篇文章让我看到了希望,忍不住转来: 原地址:http://space.itpub.net/12639172/viewspace-679365 再次表示谢意~ ---------...

【ATL/DLL】VS2005 互发消息

bu

PHP调用VS2005VC++写的dll控件

测试环境:windows +Apache(PHP)+VS2005 一、建立ATL工程 1、打开VS2005,新建空项目,我们这里建NFS(图1) 2、在解决方案中,添加 >>...

如何编写DLL文件(开发环境VS2005)

动态链接库   在Windows 应用程序中使用动态链接库有很多的好处。最主要的一点说是它可以使得多个应用程序共享一段代码,从而可以大幅度的降低应用程序的资源开销,同时很缩小了应用程序的最终执行代...

Compile ARPACK x64 dll & lib For VS2005 On Windows 7 by Using MinGW64

Author : Zeng qiang  Date : 2013-3-4     To Use ARPACK functions with C/C++ in VS2005 x64 mode, I've...

如何编写DLL文件(开发环境VS2005)

动态链接库   在Windows应用程序中使用动态链接库有很多的好处。最主要的一点说是它可以使得多个应用程序共享一段代码,从而可以大幅度的降低应用程序的资源开销,同时很缩小了应用程序的最终执行代码...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)