C++ Zugriffsverletzung
lima-city → Forum → Programmiersprachen → C/C++ und D
anfangen
ausnahme
byte
code
dank
fehler
funktion
funktionieren
pfad
pointer
position
service
start
string
system
test
verloren gehen
vier
wert wert setzen
zweig
-
Hallo,
ich habe mir eine Funktion gebaut, welche einen Wert in der Registery ändert. Das Kompelieren geht ohne Fehler, aber danach kommt:
Unbehandelte Ausnahme bei 0x77da78c9 in Test.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x0000003c
Hier der Code:
#include <windows.h> void Reg (HKEY Zweig, char Pfad, char Name, char Wert1) { HKEY hkey; char *Wert; Wert = reinterpret_cast<char*>(Wert1); RegOpenKeyEx(Zweig,(LPCTSTR)Pfad, 0, KEY_ALL_ACCESS, &hkey); // Öffnen RegSetValueEx(hkey, (LPCTSTR)Name, 0, REG_SZ, (BYTE *)Wert, strlen(Wert)); // Wert setzen RegCloseKey(hkey); // Schließen } int main(int argc, char **argv) { Reg (HKEY_LOCAL_MACHINE, (char)"SYSTEM\\CurrentControlSet\\Services\\Schedule", (char)"Start", (char)"00000004"); return 0; }
MfG
Steffen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du castest einen String auf einen einfachen Character. Dadurch wird der Pointer auf den String in einer char-Variable gespeichert, welche jedoch viel zu klein ist, um einen Pointer aufzunehmen, so dass von den vier Bytes eines Pointers drei verloren gehen. Unterlass mal das blödsinnige Casten und übergib die Werte direkt als char*, dann sollte das auch funktionieren
-
Danke goeranbarz!
Für alle die etwas mit dem Code anfangen können, hier ist die berichtigte Version:
#include <windows.h> void Reg (HKEY Zweig, char* Pfad, char* Name, char* Wert) { HKEY hkey; RegOpenKeyEx(Zweig,(LPCTSTR)Pfad, 0, KEY_ALL_ACCESS, &hkey); // Öffnen RegSetValueEx(hkey, (LPCTSTR)Name, 0, REG_SZ, (BYTE *)Wert, strlen(Wert)); // Wert setzen RegCloseKey(hkey); // Schließen } int main(int argc, char **argv) { Reg (HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Services\\Schedule", "Start", "00000004"); return 0; }
MfG
Steffen
Beitrag zuletzt geändert: 27.4.2009 15:44:43 von fusballmanager -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage