[英]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.