【发布时间】:2010-02-09 13:01:54
【问题描述】:
我正在使用lpBaseAddress : IntPtr
但是...我需要输入十六进制值 :-/ 就像一个正常的偏移量
在 VB 上可能是这样的:
offset = CLng("&H" + text)
所以我需要从文本框中获取一个值并在 C#(或 Nemerle ^_)上使用同样的魔法
【问题讨论】:
我正在使用lpBaseAddress : IntPtr
但是...我需要输入十六进制值 :-/ 就像一个正常的偏移量
在 VB 上可能是这样的:
offset = CLng("&H" + text)
所以我需要从文本框中获取一个值并在 C#(或 Nemerle ^_)上使用同样的魔法
【问题讨论】:
如果你只想解析十六进制:
string hex = "0a12cc";
long ptr = Convert.ToInt64(hex, 16);
IntPtr newPtr = new IntPtr(ptr);
我在这里使用了long 来说明,因为IntPtr 可能是32/64。
【讨论】:
offset = System.Convert.ToInt64(this.yourTextBox.Text, 16);
您确定需要 Int64 (Long) 而不仅仅是 Int32 (Int)?如果您是 VB6 编码员,您需要的是 Int32 (Int),而不是 Long。
【讨论】: