用GlobalAlloc()代替new, 用GlobalFree() 代替delete就不会出错了
其实还有一个办法,就是把dll的Settings的C/C++选项卡的Code Generation的Use Run-time liberary改成Debug Multithreaded DLL,在Release版本中改成Multithreaded DLL,就可以直接使用new和delete了,没问题
比较规范点的做法一般是DLL分配的内存由DLL释放。在DLL中加一个函数释放内存不是更好吗。
其实还有一个办法,就是把dll的Settings的C/C++选项卡的Code Generation的Use Run-time liberary改成Debug Multithreaded DLL,在Release版本中改成Multithreaded DLL,就可以直接使用new和delete了,没问题
比较规范点的做法一般是DLL分配的内存由DLL释放。在DLL中加一个函数释放内存不是更好吗。

本文介绍了在DLL中使用GlobalAlloc()和GlobalFree()进行内存管理的方法,以避免内存泄漏等问题。同时,也提到了通过调整项目的运行库设置来直接使用new和delete的方式。更推荐的做法是在DLL内部提供专门的内存释放接口。

456

被折叠的 条评论
为什么被折叠?



