2011-12-09 77 views
1

我正在使用Visual C++。我有一個庫的源代碼,稱之爲Lib。該庫由.lib和.dll組成。我在我的主項目中靜態鏈接.lib,並將.dll放在有可執行文件的目錄中。我在主項目中分配了一些內存(即將文件加載到內存中),將它傳遞給.dll的一個對象以構造該對象,當程序退出時,該對象會調用該內存上的delete。分配/釋放內存(Windows下的C++)

它似乎工作,但我不知道。我擔心的是,我在我的主項目中分配內存,並在.dll中取消分配內存。他們在同一堆嗎?

回答

0

只要您使用內存分配運行時鏈接到共享的MSVC庫,就可以工作。然後EXE和DLL共享相同的堆。

如果你打破了這種依賴關係,堆將不再被共享,並刪除不同堆中的對象將破壞應用程序。