2011-12-09 84 views
1

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

它似乎工作,但我不知道。我担心的是,我在我的主项目中分配内存,并在.dll中取消分配内存。他们在同一堆吗?

回答

0

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

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