-1

我试图以标准用户身份从 Windows 7 上的 HKEY_CURRENT_USER\Software\Classes 读取一个值,虽然密钥存在,但我得到一个错误。下面的两个代码都没有成功:

l = RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Classes", 0, KEY_READ, &hKey);

// RegOpenKeyEx doesn't success either
l = RegOpenKey(HKEY_CURRENT_USER, L"Software\\Classes", &hKey);

这段代码位于一个由应用程序调用的dll中,该应用程序做很多事情(我不知道它所做的一切)。

但是,在同一台计算机上使用相同帐户的一个简单的应用程序只有RegOpenKey可以完美运行......

谁能告诉我可能导致问题的原因以及两者之间的区别?测试应用程序是用 c++ 编写的,而 dll 是用 c 编写的。

编辑:问题已解决,只需删除 L“Software\Classes”之前的“L”...

4

2 回答 2

2

很可能,代码正在以不同的用户身份运行,或者其当前用户与进程的缓存注册表项不同步。请参阅RegOpenCurrentUser

于 2012-03-02T13:09:34.420 回答
-1

我通过将“Software\Classes”而不是 L“Software\Classes”传递给函数解决了这个问题。

于 2012-03-02T16:34:10.730 回答