char* zu BYTE[]
-
wie kann ich ein char[] str in ein BYTE[] umwandeln ?
-
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-typdefinitiontypedef 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);
-
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.