char* zu BYTE[]



  • wie kann ich ein char[] str in ein BYTE[] umwandeln ?


  • Mod

    Was meinst du mit umwandeln? Casten? Und was genau ist ein BYTE?



  • im titel schreibst du char*, weiter unten schreibst du char[].
    entscheide dich doch mal, denn das sind zwei verschiedene datentypen.
    deinem nick nach schließe ich, dass du die windows-typdefinition

    typedef unsigned char BYTE;
    

    meinst
    http://msdn.microsoft.com/en-us/library/aa383751(v=vs.85).aspx
    da ist also BYTE definiert durch unsigned char. in c brauchst du da normalerweise nichts umzuwandeln, es sei denn du verwendest einen c++ compiler.
    wenn du mit einem char-zeiger auf ein byte zeigen möchtest, schreibst du:

    BYTE my_byte = 0x00;
    char* ptr = &my_byte;
    

    ansonsten poste doch ein beispiel, wofür du das brauchst.

    gruß,
    B.B.



  • Also ich hab ein C++ Programm geschrieben somit hab ich einen C++ Compieler 🙂

    Ich möchte es in den Autostart Ordner einfügen über die rege.

    Doch er möchte str nicht sondern BYTE. Eine einfache zuweisung klappt nicht.

    char str[MAX_PATH]; 
    GetModuleFileNameA(NULL,str,MAX_PATH);
    
    HKEY hkey; 
    RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, 0);    
    RegSetValueEx(hkey, "Programmname", 0, REG_SZ, str, sizeof(str)); 
    RegCloseKey(hkey);
    

  • Mod

    In C++ musst du es dann entsprechend casten. Um unterschiedliche Pointertypen ineinander umzuwandeln, brauchst du reinterpret_cast. Das sollte wie immer ein Warnsignal sein, dass man genau wissen sollte, was man da tut. Ich hoffe für dich, das ist der Fall.


Anmelden zum Antworten