c# - 将字符串(从文本框)转换/转换为 IntPtr C#

标签 c# casting handle intptr

我有一个文本框,我想在其中输入(手动)一个句柄(http://i.imgur.com/S1bCyPy.png)

我的问题:要从文本框中获取值,我需要这样做:

textBoxHandle.Text;

但是当我将 Handle 初始化为 IntPtr(句柄)时,这不起作用:

IntPtr h = new IntPtr(textBoxHandle.Text);

我试过

(IntPtr) textBoxHandle.Text

还有许多我在这里阅读过的其他选项,例如 Marshal.StringToHGlobalAnsi 方法,但它们不起作用/它们更改了内容。

我的问题:如何从文本框中的字符串(具有句柄格式)中获取 IntPtr(句柄)?

编辑:例如,在文本框中我会写 0x00040C66。

最终代码应该是:

IntPtr hWnd = new IntPtr(0x00040C66);

但是从文本框中更改 IntPtr 的值。

编辑:我的问题被标记为重复(How can I convert an unmanaged IntPtr type to a c# string?)但它不一样。这不是我想要的从 IntPtr 到 String 。我需要相反的东西,从 String 到 IntPtr。

最佳答案

首先需要将字符串解析为intlong,然后构造IntPtr

IntPtr handle = new IntPtr(Convert.ToInt32(textBoxHandle.Text, 16));
// IntPtr handle = new IntPtr(Convert.ToInt64(textBoxHandle.Text, 16));

Convert.ToInt32ToInt64 的第二个参数指定数字的基数,因为您正在解析一个十六进制数字字符串,它需要为 16。

关于c# - 将字符串(从文本框)转换/转换为 IntPtr C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31413393/

相关文章:

c++ - 激活上下文导致动态加载的 DLL 上的文件句柄泄漏

java - 扩展父类(super class)和 ClassCastException

SQL:如果字段为空,则返回空字符串,否则转换为数字

c++ - 强制处理类中的所有成员变量

matlab - 如何从 Matlab 中的轴中辨别图例?

c# - 编译器将显式转换为我自己的类型替换为显式转换为 .NET 类型?

c# - e.取消不起作用

c# - 在 Windows Phone 上保留 HTTPOnly cookie

c# - 用于将 WCF 服务发布到 Azure 的 web.config 更改

c# - LINQ 保证使用 SelectMany 进行排序?