我試圖通過託管內存文件將c#整數數組傳遞給C++。文本很容易工作,但是我在C++環境中處於深度,並且不知道如何針對整數數組進行調整。如何將int []從c#傳遞到使用共享內存的C++
在C#側,我通過:
pView = LS.Core.Platforms.Windows.Win32.MapViewOfFile(
hMapFile, // Handle of the map object
LS.Core.Platforms.Windows.Win32.FileMapAccess.FILE_MAP_ALL_ACCESS, // Read and write access
0, // High-order DWORD of file offset
ViewOffset, // Low-order DWORD of file offset
ViewSize // Byte# to map to the view
);
byte[] bMessage2 = Encoding.Unicode.GetBytes(Message2 + '\0');
Marshal.Copy(bMessage2, 0, pView2, bMessage2.Length);
這裏pView2是指針到存儲器映射文件。
在C++方面,我呼籲:
LPCWSTR pBuf;
pBuf = (LPCWSTR) MapViewOfFile(hMapFile, // handle to map object
FILE_MAP_ALL_ACCESS, // read/write permission
0,
0,
BUF_SIZE);
我將如何改變這個處理整數數組呢?謝謝!
,你能否告訴我們的'pView2'定義的代碼?任何你不使用'MemoryMappedFile'的原因? – user7116
你爲什麼使用內存映射文件? –
@sixletter,我補充說。我使用內存映射文件,因爲在應用程序之間共享信息非常快。 –