我尝试读取存储为binary
Delphi 注册表中的值的 GUID 值。当我用 BintoHex 阅读它时,结果是相反的。看来我必须交换字节,但我认为 BinToHex 会这样做。
我参考了这个线程,但我找不到正确的解决方案: 如何将字节数组转换为 Delphi 中的十六进制表示, 这似乎是由于小 Eendian。
下面,您可以看到存储在注册表中的 GUID
这是我的代码:
var
s : string;
buffer : pointer;
...
begin
getmem(buffer, 1024*1024);
....
reg.ReadBinaryData(iValueOfregistry, buffer^, 1024*1024);
....
bintohex(pointer(longint(buffer)+14), PChar(s), 32);
s 的输出: 90E24D373F126545916439C4925E467B
GUID 应为 FOLDERID_Downloads GUID:
{374DE290-123F-4565-9164-39C4925E467B}
请帮忙