Zugriffsverletzung bei Adresse 32566694
Zugriffsverletzung bei Adresse 32566694
Hy
hab ein problem. Ich möchte in die datei C:windows.system32.driver.etc.hosts. eine neue "ip" eintragen.
dies wollte ich jetzt mit C realisieren hab aber jetzt folgenden fehler:
Zugriffsverletzung bei Adresse 32566694 in Modul 'CC3250M.DLL' Lesen von Addresse F9B0E5E8.
hab versucht die datei in einer .txt umzubenennen hat dan auch geklappt.
hättet ihre eine Idee wisso das net klappt ?
hab ein problem. Ich möchte in die datei C:windows.system32.driver.etc.hosts. eine neue "ip" eintragen.
dies wollte ich jetzt mit C realisieren hab aber jetzt folgenden fehler:
Zugriffsverletzung bei Adresse 32566694 in Modul 'CC3250M.DLL' Lesen von Addresse F9B0E5E8.
hab versucht die datei in einer .txt umzubenennen hat dan auch geklappt.
hättet ihre eine Idee wisso das net klappt ?
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Zugriffsverletzung bei Adresse 32566694
Das bedeuted erstmal, das du versucht auf ein Modul zuzugreifen, was dein Programm aber aus Technischen gründen nicht darf, weil die addresse an einem geschützten Speicherbereich steht.Zugriffsverletzung bei Adresse 32566694 in Modul 'CC3250M.DLL' Lesen von Addresse F9B0E5E8.
Das sieht für mich aus, als hättest du mit einem Pointer mist gebaut, als ihn an eirgendeiner stelle falsch verwendet, z.B sowas:
Code: Alles auswählen
int *ptr = malloc(....);
//Hier statt einer Variable zuweisen, dem Pointer eine neue Addresse zuweisen, weil das ' * ' vergessen wurde.
ptr = 12;
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: Zugriffsverletzung bei Adresse 32566694
danke für die schnelle Antwort 
das mit ptr=12; funktioniert ja nicht weil eine Konvertierung von int nach FILE nicht möglich.

das mit ptr=12; funktioniert ja nicht weil eine Konvertierung von int nach FILE nicht möglich.
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Zugriffsverletzung bei Adresse 32566694
Doch ist möglich. Denn FILE ist nur ein define für den Pointer auf eine Struktur.das mit ptr=12; funktioniert ja nicht weil eine Konvertierung von int nach FILE nicht möglich.
Und wenn man vlt mal etwas unaufmerksam war, und man so eine meldung bekommt, kann es leicht passieren, dass man dann
Code: Alles auswählen
ptr = (FILE)12;
Aber was mir gerade einfällt. Es kann sein, das du durch die änderung der Endung den Datei-handle ungültig werden lässt, da der auf eien andere Datei verweist.
Evt musst du dein FILE Pointer auf die neue Datei Refernezieren.
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Zugriffsverletzung bei Adresse 32566694
Hallo Black Axe,
Wenn Du mit Visual Studio entwickelst, sollte das Programm im Testlauf genau an der Stelle stehen bleiben, wo es knallt.
Ohne diese Informationen und ohne Quelltext kann niemand sagen, was da schief geht. Mit extrem hoher Wahrscheinlichkeit wird eine Variable nicht korrekt initialisiert sein. Kann es sein, dass beim Kompilieren des Quelltextes Warnungen ausgegeben werden?
Leider beschreibst Du nicht, was Du genau tust.BLACK_AXE hat geschrieben:danke für die schnelle Antwort
das mit ptr=12; funktioniert ja nicht weil eine Konvertierung von int nach FILE nicht möglich.
Wenn Du mit Visual Studio entwickelst, sollte das Programm im Testlauf genau an der Stelle stehen bleiben, wo es knallt.
Ohne diese Informationen und ohne Quelltext kann niemand sagen, was da schief geht. Mit extrem hoher Wahrscheinlichkeit wird eine Variable nicht korrekt initialisiert sein. Kann es sein, dass beim Kompilieren des Quelltextes Warnungen ausgegeben werden?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Zugriffsverletzung bei Adresse 32566694
ich stell mal den Quelltext rein vll. hilfts ja.
Code: Alles auswählen
{
FILE *datei;
char path[50];
sprintf( path, "C:/WINDOWS/system32/drivers/etc/hosts");
datei = fopen ( path, "a+");
fprintf(datei, "meine ip"); //schreibe den Datensatz
fclose(datei);
}
Re: Zugriffsverletzung bei Adresse 32566694
es "knallt" bei fprintf zeile.
benutze Borland C++ Builder
benutze Borland C++ Builder
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Zugriffsverletzung bei Adresse 32566694
Dann stimmt wohl was beim Öffnen nicht.
Prüfe vor dem fprintf, das dein Pointer nicht 0 ist:
Es kann sein, das an deinem Pfad etwas nicht stimmt.
Muss es unter Windows nicht egt heißen:
"C:\\WINDOWS\\System32\\drivers\\etc\host"?
Prüfe vor dem fprintf, das dein Pointer nicht 0 ist:
Code: Alles auswählen
datei = fopen ( path, "a+");
if(datei == 0)
{
//Fehlermeldung: Datei konnte nicht geöffnet werden
return;
}
Muss es unter Windows nicht egt heißen:
"C:\\WINDOWS\\System32\\drivers\\etc\host"?
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Zugriffsverletzung bei Adresse 32566694
Es gibt die Datei "C:/WINDOWS/system32/drivers/etc/hosts" nicht. Sie heißt vermutlich "C:\WINDOWS\system32\drivers\etc\hosts" und damit Du das C vermitteln kannst musst du "C:\\WINDOWS\\system32\\drivers\\etc\\hosts".BLACK_AXE hat geschrieben:ich stell mal den Quelltext rein vll. hilfts ja.Code: Alles auswählen
{ FILE *datei; char path[50]; sprintf( path, "C:/WINDOWS/system32/drivers/etc/hosts"); datei = fopen ( path, "a+"); fprintf(datei, "meine ip"); //schreibe den Datensatz fclose(datei); }
Wenn es die Datei nicht gibt, ist "datei" null. Du hast aber keine Abfrage, ob Du die Datei erfolgreich geöffnet hast, sondern Du textest einfach in eine Filehandle, dass auf keine Datei zeigt. => Bääng!

Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Zugriffsverletzung bei Adresse 32566694
@Xin: Ob die Lösung in C++, mit deinen "geliebten" Exceptions wohl besser istWenn es die Datei nicht gibt, ist "datei" null. Du hast aber keine Abfrage, ob Du die Datei erfolgreich geöffnet hast, sondern Du textest einfach in eine Filehandle, dass auf keine Datei zeigt. => Bääng!

Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum