Как проверить, зарегистрирован ли идентификатор класса или нет? - PullRequest
0 голосов
/ 21 июля 2009

Привет, я проверяю GUID SqlClass, который находится в моем Test.dll Но он не дает успеха, он потерпел неудачу со значением ... Что не так в этом коде.

#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;
                }
         }

1 Ответ

2 голосов
/ 21 июля 2009

Я никогда не видел ничего, кроме GUID в CLSID, поэтому ключ, вероятно, не существует. Загляните в этот узел под regedit, чтобы понять, что я имею в виду.

Какой был код ошибки, n? Вы можете посмотреть это двумя способами

  1. Поместите число в инструмент «Поиск ошибок» в меню «Инструменты» Visual Studio.

  2. Вызов FormatMessage на n, который дает вам текст, связанный с этой ошибкой.

...