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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM