Registry



  • Hallo,

    ich möchte mit dem Befehl RegSetValueExA(...) Werte in die Registry schreiben.
    Als Parameter wird unter anderem die zu speichern Daten in der Form const BYTE* erwartet. Wie kann ich std::string entsprechend umwandeln?



  • std::string hat eine Methode c_str, die dir einen const char* zurückgibt.

    Die Frage gehört übrigens ins WinAPI-Forum...



  • Ups Sorry.

    Mit c_str() habe ich es schon ausprobiert. Compiler(MS Visual Studio 08) sagt aber :
    'RegSetValueExA': Konvertierung des Parameters 5 von 'const char *' in 'const BYTE *' nicht möglich.



  • c++Neuling08 schrieb:

    Ups Sorry.

    Mit c_str() habe ich es schon ausprobiert. Compiler(MS Visual Studio 08) sagt aber :
    'RegSetValueExA': Konvertierung des Parameters 5 von 'const char *' in 'const BYTE *' nicht möglich.

    Dann caste doch.

    (BYTE*)(myString.c_str())
    

    Sollte doch klappen, oder?



  • BYTE : unsigned char

    unsigned char Arr[20]; // für genügend Speicher sorgen
    std::string s; 
    // s befuellen mit gewünschtem Zeug 
    std::copy(s.begin(), s.end(), &Arr[0]);
    

    und der Funktion dann Arr übergeben ...

    /Edit:
    okay, matze war schneller und seine Lösung ist außerdem vermtl besser^^



  • Ah super danke.

    Hatte grade noch eine Möglichkeit gefunden in dem mit (const unsigned char*) caste.
    Nochmals Danke für die schnellen Antworten ! :).


Anmelden zum Antworten