您好,我正在检查我的 Test.dll 中 SqlClass 的 GUID,但它没有成功,它因值而失败...这段代码有什么问题。
#include <windows.h>
#include <iostream>
using namespace std;
int main() {
HKEY hk;
long n = RegOpenKeyEx(HKEY_CLASSES_ROOT,TEXT("\\CLSID\\SqlClass"),
0,KEY_QUERY_VALUE, &hk );"
if ( n == ERROR_SUCCESS ) {
cout << "OK" << endl;
}
else {
cout << "Failed with value " << n << endl;
}
}
我也这样尝试过 RegOpenKeyEx(HKEY_CLASSES_ROOT,TEXT("\CLSID\46A951AC-C2D9-48e0-97BE-91F3C9E7B065"), 0,KEY_QUERY_VALUE, &hk)
这段代码运行良好
#include < windows.h >
# include < iostream >
using namespace std;
int main() {
HKEY hk;
long n = RegOpenKeyEx(HKEY_CLASSES_ROOT,
TEXT("\\CLSID\\{46A951AC-C2D9-48e0-97BE-91F3C9E7B065}"),
0,KEY_QUERY_VALUE, &hk );"
if ( n == ERROR_SUCCESS ) {
cout << "OK" << endl;
}
else {
cout << "Failed with value " << n << endl;
}
}
最佳答案
除了 CLSID 下的 GUID,我从未见过其他任何东西,因此 key 可能不存在。在 regedit 下查看该节点以了解我的意思。
什么是失败代码,n?您可以通过两种方式查看它
将数字放入 Visual Studio 的“工具”菜单中的“错误查找”工具中。
调用FormatMessage在 n 上,它会为您提供与该错误相关的文本。
关于c++ - 如何检查类(class)ID是否已注册?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1157383/