我使用CRegKey打开一些,但这m_hKey != 0
I use CRegKey to open some, but this m_hKey != 0
我想通过注册表获得JDk路径,该路径是:
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.8
当我使用:
CRegKey.open(HKEY_LOCAL_MACHINE, L"SOFTWARE\JavaSoft\Java Development Kit\1.8")
抛出表达式m_hKey != 0。那么发生了什么?如何修复这个bug?
下面是我的代码:// Get Java environment variable install path
CRegKey key;
wchar_t JavaHome[40];
ULONG szJavaHome = 40;
bool rest = key.Open(HKEY_LOCAL_MACHINE, L"SOFTWARE\JavaSoft\Java Development Kit\1.8");
if (key.m_hKey == 0)
MessageBox(L"11");
rest = key.QueryStringValue(L"JavaHome", JavaHome, &szJavaHome);
您不能在尝试Open
之后简单地使用CRegKey
变量key
,而不检查它的返回值。
auto retOpenKey = key.Open(...); //LONG not bool
if (ERROR_SUCCESS == retOpenKey)
{
//Ok do stuff with key
}
else
auto err = GetLastError();
系统错误码和/或FormatMessage
您还可以查看函数的实现,并在其中进行调试,因为它内联在头文件中:
inline LONG CRegKey::Open(
_In_ HKEY hKeyParent,
_In_opt_z_ LPCTSTR lpszKeyName,
_In_ REGSAM samDesired) throw()
{
ATLASSUME(hKeyParent != NULL);
HKEY hKey = NULL;
LONG lRes = m_pTM != NULL ?
m_pTM->RegOpenKeyEx(hKeyParent, lpszKeyName, 0, samDesired, &hKey) :
RegOpenKeyEx(hKeyParent, lpszKeyName, 0, samDesired, &hKey);
if (lRes == ERROR_SUCCESS)
{
lRes = Close();
ATLASSERT(lRes == ERROR_SUCCESS);
m_hKey = hKey;
#if WINVER >= 0x0501
m_samWOW64 = samDesired & (KEY_WOW64_32KEY | KEY_WOW64_64KEY);
#endif
}
return lRes;
}
相关文章:
- 我不小心调用了一个没有自己类对象的成员函数.但这是怎么回事呢
- 这是使用回溯的 nqueen 问题,但我使用了动态 2d 数组,我的程序编译良好,但不返回任何输出
- 这两个代码片段相似,但显示的结果不同
- 我试图用这段代码找到二叉树的高度,但它一直返回 0,有人可以告诉我为什么吗?
- 我包含了 std,但我仍然收到错误,这是为什么?
- 我的代码运行良好,但现在当尝试将其制作成模板时,我遇到了许多看似无关的错误。这是怎么回事?
- MSVC对这段代码很满意,但GCC并不那么热衷
- 为什么这在 c++ 中不起作用,但在 python 中工作
- 这是我的程序,C++使用 OpenCv 库从数据集中读取图像序列,但它没有运行
- [expr.unary.op]/9 似乎暗示"运算符!()' 不能应用于下面的类型 A.但编译器不同意这一点
- 为什么这段代码在Visual Studio中有效,但在gcc中失败
- 此QChangesCapacityEffect使用是否会导致潜在的内存泄漏?(但这是强制重新喷漆的唯一方法)
- 我收到"无效类型 int[int]...",但这毫无意义
- 今天赢得了我的教练关于这一点的争论,但这是正确的吗
- 为什么尽管我声明了一个不完整类型的自动实例,但这段代码还是编译并运行
- 通过C++学习倒车,但这条线有什么作用
- 我用STL写了一个bin_search,但这是一个小BUG
- 不是最重要的const.但这是什么
- 我使用CRegKey打开一些,但这m_hKey != 0
- 使用此技巧从外部访问受保护的成员,但这有效吗