问一个DLL中导出CString参数的接口函数出错的问题

sproll 2005-05-01 01:06:05
我写了一个MFC扩展DLL,用AFX_EXT_CLASS导出一个类,该类有两个函数使用CString参数,该DLL编译无问题。但是如果在另一个工程中使用这个DLL,我发现如果这个工程用Release版本编译的话,就出现编译错误,说这两个函数是无法解析的外部符号。但是这个工程如果用Debug版本编译则无此错误。
我建了个解决方案专门测试这个问题,发现的确是:
DLL中导出的类如果包含public的接收CString参数的成员函数,则这个DLL在其它工程中被引用时,无法通过该工程的Release版本的编译,报告显示这些接收CString参数的函数无法解析。
我用的是visual studio 2003。
...全文
245 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sproll 2005-05-03
  • 打赏
  • 举报
回复
谢谢大家的指点!
oyljerry 2005-05-03
  • 打赏
  • 举报
回复
用char*等吧
jerry 2005-05-01
  • 打赏
  • 举报
回复
调试版的CString 和 发行版的 CString 是不同的, 最好不要用这样的类型做函数参数,应该使用

LPCTSTR 类型
howtotell 2005-05-01
  • 打赏
  • 举报
回复
CString有它自己的一套内存分配机制,直接导出好像不行。可以考虑导出函数返回、修改需要操作的CStirng
Kudeet 2005-05-01
  • 打赏
  • 举报
回复
dll导出字符串最好不要用CString,用cha * 或者LPCTSTR/LPSTR

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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