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

Sven

Frischling

  • »Sven« ist der Autor dieses Themas
  • Private Nachricht senden

1

27.09.2003, 14:00

DLL und Debugger Problem

Ich habe gerade meine Engine in eine DLL audgelagert und wollte sie das erste mal in ein eigenständiges Programm einbinden und auf diese weise testen. Als ich das programm startete bekam ich einen Debugger-Fehler (NULL-Referenz oder so).

Ich schaute mir die Sache mal an, um zu schauen wo der fehler lag.

Code: ConfigFile = fopen(File, "r"); // Auf diese Zeile zeigte der Debugger

Und befor jetzt irgeneiner was von NULL-zeiger erzählt: NEIN. Der Zeiger ist nicht NULL, weil:
1. Ein String übergeben wurde, welcher mit #define definiert wurde
2. Weil File auf NULL getestet wird

Als Ich das Programm noch in einer exe hatte, lief alles Fehlerfrei. Nun lade ich die DLL in ein anderes Programm, und dann sowas...

Ich habe nicht viel erfahrungen mit Dbuggern, aber das hat er ausgespuckt. Ich weiß nicht was das bedeuten soll!

ConfigFile = fopen(File, "r");
00000042 mov ecx,dword ptr [ebp-4]
00000045 mov edx,10047210h
0000004a call dword ptr ds:[012F7200h]
# 00000050 mov dword ptr [ebp+FFFFFF20h],eax
00000056 mov ebx,dword ptr [ebp+FFFFFF20h]

# Hier wurde ein Fehler festgestellt

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

27.09.2003, 15:01

Willkommen im Forum!
Ich könnte mir vorstellen, dass ConfigFile ein Element einer Klasse ist. Vielleicht hast Du sowas probiert:

Klasse* pInstanz;
pInstanz->IrgendeineMethode();

Und Klasse::IrgendeineMethode führt nun den von Dir gezeigten Code aus. Da aber kein Speicher für die Instanz reserviert wurde, wird es einen Fehler geben, wenn ConfigFile ein Wert zugewiesen werden soll. Richtig wäre:

Klasse Instanz;
Instanz.IrgendeineMethode();

Oder:

Klasse* pInstanz = new Klasse;
pInstanz->IrgendeineMethode();
...
delete pInstanz;

Sven

Frischling

  • »Sven« ist der Autor dieses Themas
  • Private Nachricht senden

3

27.09.2003, 15:19

Config File ist ein Lokaler Zeiger:

FILE *ConfigFile;

Ich habe auch schon versucht diese Variable umzubenennen.
Ich habe auch versucht anstatt fopen() die Methoden open() oder _open() zu verwenden.

-> Das gleiche Ergebnis.

4

27.09.2003, 18:10

Es würde uns weiterhelfen, wenn du ein bisschen Code liefern würde. Dieser Fehler kann vieles sein. Vieleicht Postest du am besten die gesamte Funktion in der der Fehler auftaucht und wie du die Funktion aufgerufen hast.

Vieleicht hilft uns das ja ein wenig auf die Sprünge.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Sven

Frischling

  • »Sven« ist der Autor dieses Themas
  • Private Nachricht senden

5

27.09.2003, 21:36

Das Problem hat sich erledigt...

Danke an alle die helfen wollten. Letztendlich lag es an einem Einstellungs-Flag in dem Projekt-Optionen.

Werbeanzeige