Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

01.06.2008, 10:31

Dieser Fehler tritt ja immer beim Starten des Debuggers auf. Dann kann ich auf "Unterbrechen" und auf "Weiter" klicken.
Wenn ich auf "Unterbrechen" klicke, kommt ein Fenster mit der Meldung:

Quellcode

1
Es sind keine Symbole für Aufruflistenrahmen geladen. Der Quellcode kann nicht angezeigt werden.
und den Buttons "OK" und "Disassembly anzeigen".
Bei "Weiter" kommt der Fehler so oft wieder bis ich auf "Unterbrechen" klicke.

Libraries sind die mit #include eingebunden Dateien, richtig?
Davon habe ich: <fstream>, <windows.h>, <string>, <sstream>, und <tchar.h>

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

12

01.06.2008, 10:34

Zitat von »"TheWinner"«

0xC0000005 ist ein NULL-Pointer.


Echt? Ich dachte imm ein Null-Pointer würde auf die Adresse 0 zeigen? Und wieso heißt er Null-Pointer eigentlich 0xc0000005? Fragen über fragen.

Also erstmal: 0xc0000005 ist ein Fehlercode und steht für einen Access Violations (zu deutsch Zugriffsverletzung) Fehler. Wo diese Verletzung auftrat steht weiter unten im Text, nämlich:

Quellcode

1
Zugriffsverletzung beim Schreiben an Position [b]0x00030f0c.[/b]
@D13_Dreinig

13

01.06.2008, 18:00

Und was kann ich dagegen machen?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

14

01.06.2008, 18:28

Na. Schauen, was du falsch machst. ;)
Du darfst dort nicht auf den Zeiger zugreifen also wird dort (mit grosser Wahrscheinlichkeit) ein Null Zeiger sein, welchen du irgendwo vergessen hast zu füllen..

15

02.06.2008, 20:31

Aber wenn ich den ganzen Code auskommentiert habe, sollte den der ganze Kram doch eigentlich nicht mehr interessieren, oder nicht?

Ansonsten poste ich hier mal die (für mich in Frage kommenden) Stellen, da ich den Fehler einfach nicht finde:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
[...]

void LoadMemory(int *pCalculus, int &rThreeArithmetic, int &rProportional)
{
    int Buffer = 0;
    ifstream LoadInfos("Memory.save", ios::binary);

    if (LoadInfos == NULL)
    {
        *pCalculus = 1;
        rThreeArithmetic = 1;
        rProportional = 1;
    }
    else
    {
        LoadInfos.read((char *) &Buffer, sizeof(Buffer));

        //Beginn: Dekomprimieren und dekodieren

        *pCalculus = Buffer/100;

        if ((Buffer%100)/10 == 1)
            rThreeArithmetic = 1;
        else 
            rThreeArithmetic = 0;

        if ((Buffer%10) == 1)
            rProportional = 1;
        else 
            rProportional = 0;
        //Ende: Dekomprimieren und dekodieren

    }

    LoadInfos.close();
}

int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpcmdline, int ncmdshow)
{
[...]
int *pCalculus = NULL;
pCalculus = new int;
[...]
LoadMemory(pCalculus, ThreeArithmetic, Proportional);

[...]
delete pCalculus;
pCalculus = NULL;

}


Das ist der einzige Zeiger in meinem ganzen Code. Nur in der Callback-Funktion ist nochmal genau so einer.

BTW: Der Code ist wahrscheinlich nicht gerade optimal geschrieben, aber mir kams auch erstmal darauf an, dass er überhaupt funktioniert. ;)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

16

02.06.2008, 20:58

Geh doch einfach mit dem Debugger durch, der sagt dir dann, wo es kracht. Und dann machst du dir mal Gedanken, woher der Zeiger dort kommt und wenn du ihn nicht findest, kannst du mal diese Stelle posten, wo der Fehler ist.

17

02.06.2008, 21:00

Dann kommt die oben erwähnte Fehlermeldung ohne dass eine konkrete Stelle angezeigt wird.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

18

02.06.2008, 21:02

Zitat von »"Tobias Xy"«

Dann kommt die oben erwähnte Fehlermeldung ohne dass eine konkrete Stelle angezeigt wird.


Doppelklick mal auf die Meldung.

BlazeX

Alter Hase

Beiträge: 478

Wohnort: DD

Beruf: Maschinenbau-Student

  • Private Nachricht senden

19

02.06.2008, 21:08

Zitat von »"Tobias Xy"«

Dann kommt die oben erwähnte Fehlermeldung ohne dass eine konkrete Stelle angezeigt wird.

Ist vieleicht eine dumme Frage: Hast du auch Debug eingestellt oder Release?
Im Debug bringt der eigentlich immer die Stelle, wo der Fehler auftritt.

20

03.06.2008, 17:15

Zitat von »"drakon"«

Zitat von »"Tobias Xy"«

Dann kommt die oben erwähnte Fehlermeldung ohne dass eine konkrete Stelle angezeigt wird.


Doppelklick mal auf die Meldung.

Passiert auch nichts. :(



Zitat von »"BlazeX"«

Ist vieleicht eine dumme Frage: Hast du auch Debug eingestellt oder Release?
Im Debug bringt der eigentlich immer die Stelle, wo der Fehler auftritt.
Ich habs im Debug-Modus.

Werbeanzeige