C#调用C++的DLL时,返回值的问题

C#调用C++的DLL,其他方面都没有出现错误,就是在接受返回值的时候,有的电脑可以接收,有的电脑会报错。C#:stringjsonShockHammer=Calcula... C#调用C++的DLL,其他方面都没有出现错误,就是在接受返回值的时候,有的电脑可以接收,有的电脑会报错。
C#:string jsonShockHammer = CalculateInterface.CalShockHammer(shoHammer , guideWire , selection);
C++这边如果通过string传值给char*,如char* answer = StringToChar(answer_s),(StringToChar是我定义的函数,把string转换为char*),C#接受返回值会报错,如果直接定义char* = "abc",这样C#接受返回值不会报错,已经排除了字符串长度过长,或者是里面有无法接受的格式的问题,所以想请教一下大家这个问题该怎么解决。
最后要强调一下的是,有的电脑不会报错,可以成功接收,有的电脑就不行。
报错截图如下
展开
 我来答
winxpliyou
2014-12-05 · 超过65用户采纳过TA的回答
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:158万
展开全部
你的自定义函数是直接返回string::c_str()还是复制c_str()的内容
追问
返回char*,如果我直接给char* answer赋值就可以返回,如果给char* answer传值就接受不到
追答
是不是你的动态库用完以后就释放了,你的StringToChar函数把指针的内容复制一遍给answer试试看
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式