JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=95a075ed8092d10c263a0f4778be88c9Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Unbehandelte ausnahme in cxBLABLABLA

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 17.10.2002, 11:03    Titel: Unbehandelte ausnahme in cxBLABLABLA Antworten mit Zitat

Also, ich hab ein Programm, ist ja logisch. Da hab ich ne Fehlerfunktion erstellt, die Einen Standarttext und den Namen der Methode und des Funktionsaufrufs ausgeben soll, in der der Fehler auftrat. Ich füge die einzelnen Strings dann mit "sprintf" in einen ein, im Debugger kann ich dann sehen das alle Strings einen Wert haben. Wenn die Zeile jetzt aber ausgeführt wird, meldet der Compiler: "Unbehandelte Ausnahme in cx000005 Acces Violation" (Ich bin mir bei der Anzahl der Nullen nicht sicher.) . Dann verändert sich das Dokumentfenster und zeigt komische Zeilen an. An der Folgenden Zeile steht ein Gelber Pfeil:
"004053E4 mov byte ptr [edx],al"

Was kann ich machen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael
JLI'ler



Anmeldedatum: 20.07.2002
Beiträge: 173
Wohnort: Münster / NRW
Medaillen: Keine

BeitragVerfasst am: 17.10.2002, 12:38    Titel: Antworten mit Zitat

DA gibts wohl nur eins: Code posten, ansonsten ist es schwer zu sagen, woran es liegen soll, da es 1000 gründe geben kann!
_________________
Es geht auch ohne Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 17.10.2002, 13:36    Titel: Antworten mit Zitat

Oh, hab vergessen den zu posten:

Code:

int ErrorCode = 1;

char*Text;
const char* TextPart1 = "Es trat ein Fehler beim Ausführen des Programms -Power Chat- auf!\nEr Trat in der Funktion <";
const char* TextPart2 = "> auf.\nDer Fehlerhafte Funktionsaufruf lautet:";
const char* TextPart3 = ".\nDer Fehlercode lautet:";
const char* TextPart4 = ".\nBitte schicken Sie den Fehlercode an: VeruektesHuhn@gmx.de\nIch werde mich so schnell es geht um die Beseitigung\ndes Fehlers kümmern.\n";

ErrorCode = GetLastError();

sprintf(Text, TextPart1, Method, TextPart2, Function, TextPart3, ErrorCode, TextPart4);

MessageBox(hWnd, Text, "Fehler!", MB_OK|MB_ICONEXCLAMATION);

PostQuitMessage(0);

return -1;


Cu,
VH
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 17.10.2002, 13:47    Titel: Antworten mit Zitat

Das ist aber nicht mein einziges Problem:
Das erzeugen eines DirectDraw7 Objektes schlägt fehl, aber der ErrorCode lautet 0, also Das die Funktion erfolgreich war.

Cu,
VH
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 17.10.2002, 13:58    Titel: Antworten mit Zitat

Hallo,

das dein Code nicht funktioniert ist kein Wunder Confused
Also

1. sprintf kopiert in den Speicherbereich, den du als erstes Argument angibst, dies ist bei dir Text1, der genau irgendwo hin zeigt, aber nicht auf gültigen Speicher.

2. Lies dir nochmal die Dokumentation zu sprintf durch. So geht es nicht.

3. ErrorCode ist ein int, kein char* wie soll das gehen?

4. Was ist Method und Function?

Alles in allem würde ich das Programm so ändern:

Code:


const char* TextPart1 = "Es trat ein Fehler beim Ausführen des Programms -Power Chat- auf!\nEr Trat in der Funktion <";
const char* TextPart2 = "> auf.\nDer Fehlerhafte Funktionsaufruf lautet:";
const char* TextPart3 = ".\nDer Fehlercode lautet: ";
const char* TextPart4 = ".\nBitte schicken Sie den Fehlercode an: VeruektesHuhn@gmx.de\nIch werde mich so schnell es geht um die Beseitigung\ndes Fehlers kümmern.\n";

ErrorCode = GetLastError();

char TextErrorCode[32];

itoa(ErrorCode, TextErrorCode, 10);

char*    Text = new char[strlen(TextPart1) + strlen(TextPart2) + ... + strlen(TextErrorCode) + 1];

sprintf(Text, "%s%s%s%d%s", TextPart1, TextPart2, TextPart3, ErrorCode, TextPart4);

MessageBox(hWnd, Text, "Fehler!", MB_OK|MB_ICONEXCLAMATION);
 
PostQuitMessage(0);

return -1;

delete[] Text;



Denk mal drüber nach Strings aus CString oder std::string zu verweden, da kann man solche Fehler nicht machen.

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum