2009-07-21 2 views
0

안녕하세요, 내 Test.dll에있는 SqlClass의 GUID를 확인하고 있습니다.하지만 성공하지 못했습니다. 값으로 실패했습니다 ...이 코드에서 잘못되었습니다.클래스 ID를 확인하는 방법은 등록 되었습니까?

#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, & 홍콩)

이 코드 WORKS이 같은 시도 FINE

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

값이 해당 경로의 레지스트리에 실제로 있습니까? – sharptooth

+2

두 번째 코드 조각에서 GUID는 "{"및 "}"로 묶어야합니다. 다른 GUID가 레지스트리에 어떻게 저장되는지보십시오. – sharptooth

+0

댓글 감사합니다 Sharptooth – Cute

답변

2

내가 CLSID 아래에 GUID 이외 본 적이 없어, 그래서 키가 아마 존재하지 않습니다. 그 노드에서 regedit을 보면 무슨 뜻인지 알 수 있습니다.

오류 코드는 무엇입니까? 두 가지 방법

  1. 비주얼 스튜디오의 도구 메뉴에서 "오류 조회"도구로 수를 넣어이를 찾아 볼 수 있습니다.

  2. n에 대해 FormatMessage을 호출하면 해당 오류와 관련된 텍스트가 표시됩니다.

+0

+1. HKCR 수준이 아닌 HKCR 수준의 기호 키를 사용하는 것이 일반적입니다. – sharptooth

+0

값이 "2"인 오류 코드는 "파일을 찾을 수 없음"을 나타냅니다 (tdwtf에서 자주 오류가 발생했습니다). – Eugene

+0

오류 코드 2가 나타나지만 seach 테스트 으로 regedit 아래 표시된 결과 HKEY_CLASSES_ROOT \ CLSID \ {46A951AC-C2D9-48E0-97BE-91F3C9E7B065} – Cute

관련 문제