gpt4 book ai didi

java - win32 从 C++ 代码中读取 Java 首选项

转载 作者:可可西里 更新时间:2023-11-01 10:09:49 26 4
gpt4 key购买 nike

我们的一个程序在 Java 首选项中写入程序信息(窗口标题、内存等)。在 Windows 上,这在注册表下可用。如何使用 c(或 c++)读取 Java 程序编写的值。

看起来我应该使用的 API 是 RegGetValue。这是否保证可以在 Windows XP 32 位上运行?

java写的String是UTF-8编码的。我如何在windows(win32或vc++)中读取这样的字符串

干杯,贾安

最佳答案

我对此进行了深入研究。 RegGetValue() 是一个新的注册表调用,它处理传统查询注册表 (RegQueryValueEx) 方式的一些潜在问题。这里有一些关于差异的好信息:http://blogs.msdn.com/larryosterman/archive/2006/01/12/512115.aspx

如果您需要向后兼容,RegGetValue() 将不起作用,因此您应该使用 RegQueryValueEx 从注册表中读取数据。

现在谈谈我认为真正的问题:

  1. 当你使用 RegQueryValueEx() 时你会得到什么?
  2. 你怎么知道存储在注册表中的值是 utf-8 编码的?它是作为字节数组存储在注册表中,还是作为 REG_SZ?
  3. 您是否使用 regedit 查看了该值?你看到了什么?

因此,如果问题是如何将 UTF-8 编码的字符串转换为 ascii 空终止字符串,那么您可能应该更改问题的标题。作为引用,我发现这个库可能有用:

http://utfcpp.sourceforge.net

当我几分钟前尝试链接时,服务器超时 - 可能是 SF 维护正在进行。

但我建议您确保注册表中的值没有存储为 REG_SZ 条目。

关于java - win32 从 C++ 代码中读取 Java 首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2655405/

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