C++ 跨dll传递string类型参数执行出错问题

今天遇到一个问题,在一个dll工程中定义了一个返回值为string,参数为string的函数,然后在一个测试工程中调用,Release模式下一切正常Debug模式下整个函数的执行到return之前都毫无问题,然而在函数return后函数结束时总是堆栈错误崩溃,试了许久之后发现将参数改为char *就可以了,然后一搜发现大家都遇到了类似的问题,那就是:不要跨dll传递STL容器,string, vector, list等,导出的dll一定要用标准数据类型。

参考文章:

C++中string跨DLL失败解决途径:https://www.cnblogs.com/abella/p/9582549.html

string 跨模块作为参数传递的异常: https://blog.csdn.net/weixin_34204722/article/details/89823229

调用其他DLL时传递vector和string的问题:https://bbs.csdn.net/topics/370217758

在DLL间或者DLL与EXE之间传递vector对象或指针的问题:https://blog.csdn.net/cbnotes/article/details/38555875

 

posted @   jixhua  阅读(3877)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
点击右上角即可分享
微信分享提示