Windows API RegGetValue
是否需要直接后代才能获得lpSubKey
参数?
这会有用吗?
RegGetValue(HKEY_LOCAL_MACHINE,
L"Software\\Microsoft\\Windows NT\\CurrentVersion", L"ProductName",
RRF_RT_REG_SZ, NULL, outdata, &outdata_size);
编辑:我有一个前导斜杠\\
,Windows不喜欢它!还将UTF-8字符串转换为UTF-16宽字符串(Windows样式)。
答案 0 :(得分:0)
Windows API
RegGetValue
是否需要直接后代才能获得lpSubKey
参数?
不,它没有。
您可以像显示的那样指定路径。您也不需要前导路径分隔符(\\
)。
但是您展示的代码可能有效,也可能无效。不是因为它指定了字符串的路径,而是因为您可能混合了Unicode和ANSI字符串。从您的用户名(unixman),我认为您对Windows编程相对较新,因此值得注意的是Windows应用程序完全是Unicode并且已经使用了十多年。因此,您应始终将代码编译为Unicode并使用L
前缀字符串文字(以指示宽字符串或Unicode字符串)。
同样,请确保将outdata
声明为wchar_t
的数组。