2011-03-15 100 views
0

請幫忙寫std :: vector < nIcon *> class的C++分配器。需要爲C++編寫共享內存分配器std :: vector

我發現的所有例子都顯示了我需要覆蓋的方法,而不是代碼示例。

我需要在Windows上使用(使用的CreateFileMapping和MapViewOfFile)

+3

抱歉,但是這不是#2是如何工作的。發佈你已經完成的工作,有人會幫助你。要求某人爲隱約描述的問題編寫代碼是不對的。 – dandan78 2011-03-15 13:53:41

+0

我注意到你的向量包含指向nicon類的指針。你確定你想要從映射內存中分配指針,還是你希望你的圖標本身是從映射內存中分配的? – 2011-03-15 14:31:05

+0

將標準類對象放入共享內存將無法正常工作。你不能在每個進程中總是獲得相同的內存地址,並且當地址不同時,對象中的所有指針都會中斷。 – 2011-03-15 14:32:09

回答

3

我建議你看看升壓interprocess library共享內存來實現分配?它允許你使用共享內存創建分配器。

我見過一些例子,我會說只是看看更多。我同意他們都沒有做出完美的工作,因此我不會特別推薦。雖然不僅僅是實現一小部分功能,但實際上並沒有什麼(只要你不需要爲map實現)。

+0

是的,我看了一下,但我無法在C++ Builder 2010下編譯它。它由於各種錯誤而失敗,因爲標準cbuilder的包不包含進程間庫,所以我從最新的庫中拷貝了一個。即使在cbuilder中替換所有boost也沒有成功,因爲RTL/VCL基於boost的早期版本。我現在正在查看POCO庫,但是任何人都可以使用c builder獲得成功? – Sergey 2011-03-15 15:41:25

0

你可以使用:

std::vector< nicon *, MyAllocator >

對於你會怎麼寫MyAllocator