2011-09-12 56 views
2

我沒有實現內存映射文件的問題。問題是。假設這返回一個有效的內存視圖。C++內存映射文件實現

void* pBuf = MapViewOfFile(hMapFile, 
     FILE_MAP_WRITE, 
     0,     
     0,  
     0); 

我可以使用memcpy將數據提供給它嗎?例如我可以告訴我的應用程序存儲數據嗎?我真的想要像char * buffer = new char [1073741824],其中新的數據放置在內存映射文件中。這似乎合乎邏輯。或者我將不得不編寫一個使用memcpy寫入內存視圖的包裝器?那會讓人失望。

+0

請不要在問題中寫下答案 - 我已恢復編輯。如果你想回答這個問題,那就這樣做。當然,這樣做沒有意義,因爲您有一個答案與您的解決方案相同。 –

回答

0

您可以使用placement new運算符,也可以將地址轉換爲您想要使用的結構或類。放置新的優點是該類的構造函數將被調用。如果您從該指針開始使用,則不需要複製數據,而是直接讀寫數據。

+0

最佳答案。和我一樣的結論。加上它是最有效和最不臃腫的。 – user936509