郁闷,在Dll的函数中也不能使用STL.请问是这样的吗?

wfh_178 2008-06-11 11:49:13
传递一个const char*然后在DLL的导出函数中用STL string发现有错误。本来const char*指向的是一个好好的字符串,用它构造string之后发现strin里面是一些乱码?

请问是否在DLL的导出函数函数体中,也不能使用STL??

我没有使用DLL的导出函数传递STL的东西,甚至reference或者pointer,传递的是const char*,只在其中使用了STL的string,这样也不行吗?
...全文
118 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dbger 2008-06-11
  • 打赏
  • 举报
回复
应该没问题的,可能是其他原因引起的。
可以先写个简单的测试程序试试。
只有一个导出函数,函数体内做下string的简单操作。
bengold1979 2008-06-11
  • 打赏
  • 举报
回复
这个问题是window系统导致的。因为window不支持DLL中动态内存分配导致的。其他操作系统好像没有该问题。
ouyh12345 2008-06-11
  • 打赏
  • 举报
回复
也不好,就传char *或const char *或BSTR
wfh_178 2008-06-11
  • 打赏
  • 举报
回复
那传ATL::CString可以吗?
liyinlei 2008-06-11
  • 打赏
  • 举报
回复
最好不要在导出函数的参数里传递STL的string

在函数内部,DLL内部使用不会有问题
ouyh12345 2008-06-11
  • 打赏
  • 举报
回复
stl解析出来的名字太复杂了
在dll内部使用是没问题的
wfh_178 2008-06-11
  • 打赏
  • 举报
回复
我就是在测试程序里面试的,遇到的问题.

请问2楼为什么不行 啊?
ouyh12345 2008-06-11
  • 打赏
  • 举报
回复
不要在导出函数里用stl的东西,太复杂了

15,472

社区成员

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

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