从 /MD Exe 文件中删除 /MDd 的 DLL 内存会导致堆损坏



我想从dll删除EXE的内存。

我测试..

  1. exe:/md,dll:/mdd => heapcrustion。
  2. exe:/md,dll:/md =>工作很好,只要我看到时。

即使是Localalloc也会产生相同的结果...

,只要我知道,多线程dll CRT使用相同的堆内存。你能告诉我为什么情况1测试总是堆积损坏?

,我该如何修复?

- 加法。
当然,这是最好的,限制了同一地点的分配/交易。

但是我的概率是..大小从EXE文件中首先可见,但是DLL需要通过输出参数使用内存。 - 查询大小/然后获得缓冲区不是我想要的(对于DLL用户来说太复杂了。)

我想从dll删除EXE的分配内存。

那不是一个好主意。最好将代码内存分配和相应的DEADLOCATION放在EXE或DLL中。

即使exe和dll都是相同的构建类型(调试/发行版),当将内存分配时,您也不应将内存分配。

如果您在同一单元中分配和处理内存,即exe或dll,则应该能够混合调试和非驱动版本,而无需遇到内存腐败问题。

最新更新