Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » String Wert aus Registry auslesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.05.2003, 11:48 Uhr
Andyk



Hi Leute,
ich hab ein Problem, kann mir jemand erklären wie die Funktion

C++:
RegQueryValueEx( hKey, strRegName, 0, &dwType, (BYTE*)strDest, &cbDest )

funktioniert bzw. ein Codebeispiel geben? Egal was ich mache ich bekomme nur einen leeren String.
Danke, CU
--
CU,
ANDYK
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.05.2003, 12:31 Uhr
~Michael L.
Gast


Ich weiß nicht ob es dir hilft und ich habe auch keine Ahnung davon. Aber ein Codebsp. habe ich in der MSDN gefunden! Ich hoffe es bringt was

C++:
#define RTN_UNKNOWN 0
#define RTN_SERVER 1
#define RTN_WORKSTATION 2
#define RTN_NTAS 3
#define RTN_ERROR 13

DWORD GetWindowsVariant(void)
{
    #define MY_BUFSIZE 32    // Arbitrary initial value.
                             // Dynamic allocation will be used.
    HKEY hKey;
    TCHAR szProductType[MY_BUFSIZE];
    DWORD dwBufLen = MY_BUFSIZE;
    LONG lRet;

    if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,
        TEXT("SYSTEM\\CurrentControlSet\\Control\\ProductOptions"),
                    0,
                    KEY_QUERY_VALUE,
                    &hKey) != ERROR_SUCCESS) return RTN_ERROR;

    lRet = RegQueryValueEx(hKey,
                    TEXT("ProductType"),
                    NULL,
                    NULL,
                    (LPBYTE)szProductType,
                    &dwBufLen);

    RegCloseKey(hKey);

    if(lRet != ERROR_SUCCESS) return RTN_ERROR;

    // check product options, in order of likelihood
    if(lstrcmpi(TEXT("WINNT"), szProductType) == 0)
         return RTN_WORKSTATION;
    if(lstrcmpi(TEXT("SERVERNT"), szProductType) == 0)
         return RTN_SERVER;
    if(lstrcmpi(TEXT("LANMANNT"), szProductType) == 0)
         return RTN_NTAS;
    // else return "unknown variant" code
    else return RTN_UNKNOWN;
}



mfg Michael
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.05.2003, 12:38 Uhr
~Spacelord
Gast


Hi,
ich kann es gerade nicht testen,aber falls strDest ein CString Objekt ist versuch mal (BYTE*) strDest.GetBuffer(0).
ReleaseBuffer nicht vergessen

MfG Spacelord
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.05.2003, 12:44 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Spacelord
Upsy,
das mit dem ReleaseBuffer habe ich da (wohl sträflicher weise) noch nie benutzt.
Was passiert den wenn ich den nicht aufrufe. Wird der Buffer dann nach ende der methode automatisch wieder freigegeben oder habe ich dann ewig ein memory-loch, so lange das Programm läuft?

Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.05.2003, 12:56 Uhr
~Spacelord
Gast


Wenn du die "Kontrolle" über den Speicherbereich deines Cstrings hast und weitere CString Methoden ausführst(die die Länge deines Strings ändern) wird neuer Speicherbereich angelegt.
Nachdem du dann ReleaseBuffer aufgerufen hast ist die Adresse deines ursprünglichen Strings nicht mehr gültig bzw unaktuell.
Der Buffer wird bei Zerstörung des Objekts freigegeben falls man überhaupt nicht ReleaseBuffer aufruft.

MfG Spacelord
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.05.2003, 13:40 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Spacelord
Dann muss ich mir also keine Sorgen machen.

Danke Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.05.2003, 15:25 Uhr
Andyk



@Michael L.
Thanx. das wars
--
CU,
ANDYK

Dieser Post wurde am 12.05.2003 um 15:26 Uhr von Andyk editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: