码迷,mamicode.com
首页 > 编程语言 > 详细

c++跨动态库DLL的内存分配与释放问题

时间:2017-09-11 21:06:28      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:动态库   csdn   ptr   方式   修改   链接   长度   地方   new   

先说结论:

1、如果两个DLL(或者EXE调用DLL)的CRT链接均为MD,则可以跨动态库分配和释放,如果一个是MT,另外一个是MD则会有问题。
2、利用虚函数的动态绑定技术,动态绑定分配释放内存的new和delete等,可以解决这个问题,例如shared_ptr。但如果shared_ptr包装是vector等类型,在调用和被调用中都涉及到vector的修改的话,仍然会有问题,因为两个地方都会有释放和分配。
似乎最好的办法还是用原始指针加数组长度的方式传递。
参见下面两个文章。

c++跨动态库DLL的内存分配与释放问题

标签:动态库   csdn   ptr   方式   修改   链接   长度   地方   new   

原文地址:http://www.cnblogs.com/ljy339/p/7506722.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!