在dll使用string &的问题 我在dll定义void _declspec(dllexport)get(string &a){ a="OK";}但我在外面调用时却弹出Debug Assertion Faild! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 导出函数的参数不要使用 C++类void _declspec(dllexport)get(char* a, int len){ strncpy(a, "OK", len);} 楼上的谢了,但能说得更清楚一点吗? 如果我一定要用string还有其它方法吗? 呵呵,这个涉及CRT 的内存是如何分配的了。我在http://community.csdn.net/Expert/topic/3980/3980923.xml?temp=.9605677这个帖子的回复里面描述了问题出现的原因,你可以参考一下,因为new 和delete 也是CRT从堆里面取的内存。其实最简单的解决办法就是krh2001(边城浪子) 说的不用string 类作参数。当然,你实在想用这样的动态类,就自己实现一个string 吧,在里面自己处理new 和delete 方法。就是太麻烦了。 如果一定要用的话, 那就是 Debug Assertion Faild! vs2005调试问题(急) 看看这个错误;Error running MIDL.exe:2 模式对话框不能退出的问题,请大家帮忙 熟悉滑动控件(CSliderCtrl)使用的帮我看看,谢谢 Static 控件透明问题 学STL看哪本书好? 谁能总结一下 有关内存分配的几个函数 有谁会vc下的位图打印啊?问了两天了,都没有人吗? MFC CTypedPtrList 转ATL对就哪个API 求助:一个关于图标显示的问题。(开始提的一个没有上去,:9) 怪问题-不该显示的露出来了! 有没有截屏用的api?
strncpy(a, "OK", len);
}
如果我一定要用string还有其它方法吗?
http://community.csdn.net/Expert/topic/3980/3980923.xml?temp=.9605677这个帖子的回复里面描述了问题出现的原因,你可以参考一下,因为new 和delete 也是CRT从堆里面取的内存。其实最简单的解决办法就是krh2001(边城浪子) 说的不用string 类作参数。
当然,你实在想用这样的动态类,就自己实现一个string 吧,在里面自己处理new 和delete 方法。就是太麻烦了。