首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C# MessageBox 顯示指標地址:使用 _itot 或 ToString("X") 格式化

     編輯:程式設計疑難解答

問題

MessageBox 參數需字串,欲顯示指標/物件地址。

解決方案

非托管指標

IntPtr ptr = Marshal.AllocHGlobal(100);
string addr = "0x" + ptr.ToString("X"); // 十六進位
MessageBox.Show(addr);

托管物件地址 (GCHandle)

object obj = new object();
GCHandle handle = GCHandle.Alloc(obj, GCHandleType.Pinned);
IntPtr addr = handle.AddrOfPinnedObject();
MessageBox.Show("0x" + addr.ToString("X"));
handle.Free();

C 風格 _itot (僅限 unsafe/互操作)

// 需引用 Microsoft.VisualC.dll 或使用 P/Invoke
// 不推薦,純 .NET 用 ToString("X") 即可

注意

  • 托管物件地址可能因 GC 移動而改變,GCHandleType.Pinned 固定物件但影響 GC 效能。
  • 僅調試顯示用,生產代碼不應依賴具體地址。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved