gpt4 book ai didi

c# - IntPtr 到 String 和 long?

转载 作者:行者123 更新时间:2023-11-30 22:44:58 24 4
gpt4 key购买 nike

我正在使用 C# 和 .NET 2.0 框架。

我这里有这个方法可以从 IntPtr 中获取字符串:

 void* cfstring = __CFStringMakeConstantString(StringToCString(name));
IntPtr result = AMDeviceCopyValue_Int(device, unknown, cfstring);
if (result != IntPtr.Zero)
{
byte length = Marshal.ReadByte(result, 8);
if (length > 0)
{
string s = Marshal.PtrToStringAnsi(new IntPtr(result.ToInt64() + 9L), length);
return s;
}
}
return String.Empty;

它有效,所有数据都以字符串形式保存在我的 USB 设备中(方法 AMDeviceCopyValue 的返回数据)。

现在我明白了:

£\rº\0\0¨\t\0\0\0ˆ\0\0\0\0\0\0x>Ô\0\0\0\0Ũ\t\0\0\0€1ÔxÕ͸MÔ\0\0\0\0Ȩ\t\0\0\0€)\0fŒ\a\0Value\0\0˨\t\0\0\0€7fŒ\a\0Result\0Ψ\t\0\0\0ˆTÅfŒ\a\0\0Key\0\0\0\0ñ¨\t\0\0\0€+fŒ\a\0Port\0\0\0ô¨\t\0\0\0€%fŒ\a\0Key\0\0\0\0÷¨\t\0\0\0€:\0\0\0\0\0\0\0\0\0\0\0\0\0\0ú¨\t\0"

这被保存为 long - 那么,我怎样才能将这个 IntPtr 变成 long 而不是 string

最佳答案

如果你只是想读取一个长而不是一个字符串,使用:

long l = Marshal.ReadInt64(result, 9);
return l;

关于c# - IntPtr 到 String 和 long?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3254426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com