binärer Registrywert



  • Hallo Leute,

    wie kann ich einen binären Key aus der Registry einlesen bzw. einen erstellen?



  • // raus:
    void * p; int size;
    DWORD err = RegSetValueEx(baseKey, name, 0, REG_BINARY, (BYTE *) p, size);
    
    // rein:
    DWORD type = 0;
    DWORD size = 0;
    DWORD err = RegQueryValueEx(basekey, value, NULL, & type, NULL, &size);
    (if err == S_OK && type == REG_BINARY)
    {
      void * p = NULL;
      do {
        void * p = // buffer der größe size - realloc!
        err = RegQueryValueEx(basekey, value, NULL, & type, (BYTE *) p, &size);
      while (err == ERROR_MORE_DATA);
    }
    

    Hiweis: Wie auch beim lesen von Strings kann sih der Registry-Wert ja zwischen den beiden Aufrufen ändern - daher die do-while Schleife.
    Wenn man die Größe der Binärdaten im vorraus kennt, ist das natürlich nicht nötig, und man kann sich auch den ersten Aufruf sparen.


Anmelden zum Antworten