2011-06-06 126 views
0

我做了一些測試,我能夠在C++/CLI可執行文件中創建並刪除boost :: interprocess :: shared_memory_object,沒有任何問題。在C++/CLI dll插件中,我只能創建boost :: interprocess :: shared_memory_object,但刪除失敗。我確認該文件在刪除時存在 - 它存在於名爲「20110606204418.125000」的子文件夾中的boost :: interprocess文件夾中。內存尚未被任何其他進程映射。任何想法可能是什麼原因?一開始我認爲這可能與該項目是一個dll並針對CLR有關,但說實話我不知道。 編輯:刪除代碼由不同於創建代碼的線程調用 - 這是不允許的?boost :: interprocess :: shared_memory_object :: remove失敗

+0

似乎可以在不同的線程中刪除它,只要您同步操作以避免同時執行其他操作時刪除操作。 – 2011-06-07 01:24:27

回答

0

在調試過程中,我發現要在boost :: interprocess :: shared_memory_object :: remove中刪除的文件路徑與由boost :: interprocess :: shared_memory_object構造器創建的文件不同 - 要刪除的路徑指向在「boost_interprocess」文件夾的根目錄下,而實際創建的文件位於「boost_interprocess/20110606204418.125000」文件夾中。所以我報告了一個提升的錯誤。我們將看到他們對此做了什麼。

+0

你有錯誤報告的鏈接嗎? – 2011-09-20 17:33:05

相關問題