2014-09-25 107 views
0

我有一個IntPtr(c#)從非託管代碼給出。我知道這是對帶有4096個元素的字節數組的引用。IntPtr到字節[]數組C#

現在我想將這些數據從IntPtr轉換爲Byte [] WITHOUT Marshal.Copy。因爲內核空間中的內存已被分配。我只想將這些數據解釋爲一個字節數組。

我知道有一個函數「InteropUtils.ConvertIntPtrToByteArray-了Methode」,但它僅適用於智能設備等

也許有人有一個更好的主意?

+0

也許這將有助於:http://stackoverflow.com/questions/713324/how-to-cast-intptr-to-byte/1304570#1304570 – 2014-09-25 09:22:28

+0

@DavidG我以爲你沒有讀過我的問題。我不想使用Marshal.Copy()方法。 – REMberry 2014-09-25 09:30:25

回答

0

你問什麼是不可能的,因爲一個IntPtr表示非託管存儲區域,而一個byte []數組表示託管內存區域。將非託管區域視爲託管區域是不可能的。

您必須將數據複製到託管區域(通過Marshal.Copy),或者使用不安全的代碼直接操作它。