【问题标题】:Allocating/deallocating memory (C++ under windows)分配/释放内存(windows下的C++)
【发布时间】:2012-01-16 16:20:53
【问题描述】:

我正在使用 Visual C++。我有一个库的源代码,称之为 Lib。该库由一个.lib 和一个.dll 组成。我静态链接主项目中的 .lib 并将 .dll 放在可执行文件所在的目录中。我在主项目中分配了一些内存(即,将文件加载到内存中),将其传递给 .dll 的一个对象以构造它,当程序退出时,该对象在该内存上调用 delete。

它似乎有效,但我不确定。我担心的是我在我的主项目中分配内存并在 .dll 中取消分配内存。它们在同一个堆上吗?

【问题讨论】:

    标签: memory-management dll heap-memory


    【解决方案1】:

    只要您使用内存分配运行时链接到共享的 MSVC 库,它就可以工作。然后 EXE 和 DLL 共享同一个堆。

    如果你打破这个依赖,堆将不再被共享,删除不同堆中的对象会破坏应用程序。

    【讨论】:

      猜你喜欢
      • 2013-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 2013-11-22
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      相关资源
      最近更新 更多