簡體   English   中英

嘗試將 IntPtr 轉換為字節數組給了我 AccessViolationException

[英]Trying to convert IntPtr to byte array gives me AccessViolationException

我正在嘗試序列化我的結構,我需要將 IntPtr 轉換為字節數組。 這是一個例子:

//IntPtr hWnd = this.Handle;    

int size = Marshal.SizeOf(typeof(IntPtr));
byte[] managedArray = new byte[size];
Marshal.Copy(hWnd, managedArray, 0, size);  //Exception: AccessViolationException

為什么?

窗口句柄 ( hWnd ) 不是指向有效內存的指針,它是 Windows 內部數據結構的索引。

但是,如果您想以最糟糕的方式之一將數字本身拆分為字節,請嘗試以下操作:

Marshal.Copy(&hWnd, managedArray, 0, size);  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM