我想从dll中删除exe分配的内存。
当我测试..
甚至LocalAlloc都会得到相同的结果......
只要我知道,多线程-dll crt使用相同的堆内存。 你能告诉我为什么案例1测试总是堆腐败吗?
并且,我该如何解决这个问题?。
- 补充。
当然最好是在同一个地方限制分配/解除分配。
但我的疑问是...... 大小首先从exe文件中可见,但是dll需要通过输出参数使用内存。 - 查询大小/然后获取缓冲区不是我想要的(对于dll用户来说太复杂了。)
答案 0 :(得分:0)
我想从dll中删除exe分配的内存。
那不是个好主意。最好将代码内存分配和相应的释放留在EXE或DLL中。
即使EXE和DLL都是相同的构建类型(调试/发布),当在另一个中分配内存时,不应该释放内存。
如果在同一单元(即EXE或DLL)中分配和释放内存,则应该能够混合调试和非调试版本,而不会遇到内存损坏问题。