Konvertierungsprobleme



  • Hi!

    Ich habe ziemliche Probleme mit den Typen in C (komme aus der Java-Ecke)...

    Momentan will ich die Registry durchsuchen.

    RegOpenKeyEx( HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Classes\\CLSID\\"), 0, KEY_READ, &hTestKey);
    

    wenn ich den zweiten Paramter auf diese Weise übergeb funktioniert alles. Ich will ihn jetzt aber zusammensetzen. Also etwas in der Art

    RegOpenKeyEx( HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Classes\\CLSID\\" + "{CLSID}"), 0, KEY_READ, &hTestKey);
    

    Wie mache ich das? In der Doku steht der zweite Param ist vom Typ "LPCTSTR".

    Die Variable die ich anhängen will ist übrigens vom Typ "char*". Ich will also einen fest angegebenen String mit einem char* verknüpfen.

    Kann mir jemand helfen???

    Grüße, Dirk


  • Mod

    Man kann mit + Keine String zusammenhängen!
    Strings sind char Array's und damit nicht einfach so zu bedienen.
    Du kannst ensprechende Klassen wird std::string oder CString verwenden:

    CString strKey(_T("SOFTWARE\\Classes\\CLSID\\"));
    strKey += "{CLSID}";
    RegOpenKeyEx( HKEY_LOCAL_MACHINE, strkey, 0, KEY_READ, &hTestKey);
    

    BTW: TEXT solltest wirklich nur verwenden wenn klar UNICODE gemeint ist. _T ist variabler, und erlaubt auch die spätere Nutzung als MBCS.


Anmelden zum Antworten