Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Beni5 Super JLI'ler
Alter: 37 Anmeldedatum: 12.11.2003 Beiträge: 310 Wohnort: Switzerland Medaillen: Keine
|
Verfasst am: 06.01.2005, 19:40 Titel: Kann keine Datei mehr öffnen |
|
|
Hallo Leutz!
Wenn ich die Funktion GetOpenFileName() benutze kann ich danach keine Textdatei mehr lesen, die FILE ist immer gleich NULL. Wieso ist das immer so? Ich kann mich auch erinnern das ich mal beim laden von Surfaces Probleme danach hatte.
Bin für jede Hilfe dankbar!
THX |
|
Nach oben |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 06.01.2005, 20:23 Titel: |
|
|
Also es könnte daran leigen wie du die Datei öffnest. Zum Beispiel soltle man unterscheiden ob man ne Textdatei oder ne Binärdatei öffnet. Bei Binär muss man z. B. "Rb" oder "wb" angeben bei Textdateien dann glaub ich "rt" oder "wt". Aber auf jednefall solltest du mal SOurce zeigen... _________________ https://jonathank.de/games/ |
|
Nach oben |
|
 |
Beni5 Super JLI'ler
Alter: 37 Anmeldedatum: 12.11.2003 Beiträge: 310 Wohnort: Switzerland Medaillen: Keine
|
Verfasst am: 06.01.2005, 21:01 Titel: |
|
|
ne wenn ich diese Funktion net ausführe klappts ja Prima!
Das mache ich bei WM_COMMAND:
Code: |
case ID_OPEN:
OPENFILENAME ofn;
char FileTitle[MAX_PATH];
ZeroMemory(&ofn,sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME); // Grösse der Struktur
ofn.hwndOwner = NULL; // Besitzer Fenster
ofn.lpstrFilter = "bEngine map files (*.bmap)\0*.bmap\0All Files (*.*)\0*.*\0"; // Dateitypen filter
ofn.lpstrFile = FilePath; // Dateipfad
ofn.nMaxFile = MAX_PATH-1; // Max. Pfadgrösse
ofn.lpstrFileTitle = FileTitle; // Dateititel
ofn.nMaxFileTitle = MAX_PATH-1; // Max. Dateititelgrösse
ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST; // Flags
if(GetOpenFileName(&ofn))
{
MessageBox(0,FilePath,"",MB_OK);
Direct3D.LoadMap("maps/map1.bmap");
}
break;
|
Und das ist der obere Teil der LoadMap funktion:
Code: |
m_File = fopen(lpFilename,"rt");
if(NULL == m_File)
{
return;
}
|
|
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 06.01.2005, 21:07 Titel: |
|
|
Hi,
ersetz den Code mal:
Code: |
m_File = fopen(lpFilename,"rt");
if(NULL == m_File) // UGLY!
{
return;
} |
durch den hier:
Code: |
m_File = fopen(lpFilename,"rt");
if(!m_File)
{
::MessageBox (NULL, "Pointer ist NULL!", "", MB_OK);
throw "error";
}
|
Wenn die MessageBox erscheint und ne Exception geworfen wurde weißte wo der fehler ist, die Datei existiert nicht. _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
 |
Beni5 Super JLI'ler
Alter: 37 Anmeldedatum: 12.11.2003 Beiträge: 310 Wohnort: Switzerland Medaillen: Keine
|
Verfasst am: 06.01.2005, 21:13 Titel: |
|
|
Klar ist der Pointer NULL sonst würde es ja auch nicht returnen. Aber wenn ich diese GetOpenFileName funktion vorher nicht aufrufe ist de rPointer nicht nulll das ist ja das komische..  |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
 |
Beni5 Super JLI'ler
Alter: 37 Anmeldedatum: 12.11.2003 Beiträge: 310 Wohnort: Switzerland Medaillen: Keine
|
Verfasst am: 07.01.2005, 13:12 Titel: |
|
|
Es braucht keinen Sourcecode es steht 100 % sicher dass es an dieser Funktion liegt... Ich hatte schojn immer probleme mit laden von Dateien nach dieser Funktion, sie ist so unberechenbar... :'( *snief* |
|
Nach oben |
|
 |
|