weiss jemand etwas mit der Fehlermeldung anzufangen?
-
daran sollte es eigentlich nicht liegen.
ich habe sowohl im debug, als auch im release-ordner die gleiche ordnerstruktur
angelegt.
zusätzlich habe ich kontroll-routinen eingebaut, damit sichergestellt ist, dass
die datei auch existiert. sollte sie nicht existieren, dann wird sie erstellt.
ich bin mit meinem latein am ende.
ich habe mir sogar die mühe gemacht, funktionen auf die ich zuerst mit zeiger zugegriffen habe in jeder klasse nochmals anzulegen.

-
vielleicht findest du ja noch die zeit uns mitzuteilen,
was du unter "nicht richtig läuft" verstehst
-
Hoffe wir reden jetzt nicht aneinander vorbei.
Du öffnest in deinem Programm z.B. die Datei test.txt. Startest du dein Programm mit dem Studio so sucht er im Ordner "C:\Dokumente und Einstellungen\g\Desktop\Stempeluhr" nach dieser Datei.
Startest du dein Programm mit einem Doppelklick auf die exe so sucht er in "C:\Dokumente und Einstellungen\g\Desktop\Stempeluhr\Release". Stell' in der Konfig mal das Arbeitsverzeichnis auf "C:\Dokumente und Einstellungen\g\Desktop\Stempeluhr\Release" um und teste mal damit. Das ist das Einzige was mit einfällt was anders sein könnte.
-
ich ermittele mit ner funktion den aktuellen programmpfad. die dateien können
geöffnet und gelesen/geschrieben werden.
das problem ist: einmal macht er es und das andere mal nicht:CString CStempeluhrView::prog_pfad() { // Programmpfad ermitteln CString prog_pfad; static char path[_MAX_PATH]; if (_getdcwd('C' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3) { prog_pfad = path; } else if ((_getdcwd('D' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('E' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('F' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('G' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('H' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('I' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('J' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('K' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('L' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('M' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('N' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('O' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('P' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('Q' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('R' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('S' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('T' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('U' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('V' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('W' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('X' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('Y' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('Z' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('A' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } else if ((_getdcwd('B' - 'A' + 1, path, _MAX_PATH ) != NULL && strlen(path) > 3)) { prog_pfad = path; } // "\" in "\\" umwandeln int laenge = prog_pfad.GetLength(); int position; CString bearbeiten = prog_pfad; CString zwischen1,zwischen2; int laenge2 = bearbeiten.GetLength();; while(laenge2 > 1) { position = bearbeiten.Find('\\', 0); if (position != -1) { zwischen1 = zwischen1 + bearbeiten.Left(position+1) + "\\"; bearbeiten = bearbeiten.Mid(position+1, laenge2-1); } else { zwischen1 += bearbeiten; bearbeiten = ""; } laenge2 = bearbeiten.GetLength(); } prog_pfad = zwischen1; return prog_pfad; }
-
Nicht den Programm-Pfad! Mit deiner Funktion holst du dir immer den aktuellen Pfad von Laufwerk C: (falls C: existiert), auch wenn dein Programm auf LW
liegt.MSDN schrieb:
Get full path name of current [b]working directoryb[b] on the specified drive
Übrigens gibt es eine Funktion für sowas: MSDN: GetCurrentDirectory.
Möchtest du den Pfad haben wo deine .exe Datei liegt - dann nimm GetModuleFileName(0) (Musst noch den Dateinamen am Ende entfernen). -> In der MFC-FAQ oder mal suchen.
-
Danke für den Tipp!! Werde ich mal versuchen.
Das lustige ist, meine routine funktioniert auch (überall hin kopiert und mit ner
messagebox kontrolliert).
ist aber super nett, dass du dich meiner annimmst...
-
Nur zur info:
habe mit messageboxen debuggt und den Fehler gefunden:eine nicht auskommentierte code-zeile
Sorry für meine unendliche Doofheit.....

-
Hi, hab jetzt schon einige Zeit im Forum gesucht, aber einfach keine Lösung gefunden.
Ich hab auch das Problem, dass sich mein Fenster immer wieder beim Debuggen schließt. Und das in der Entwicklungsumgebung. Das Problem tritt jedoch bei jedem Programm das ich debuggen will auf, sogar hierbei:#include <iostream> using namespace std; int main(){ cout << "test" << endl; return 0; }naja und die nette antwort wie oben bereits beschrieben:
"ntdll.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\kernel32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
Thread 0x4F8 wurde mit Code 0 (0x0) beendet.
Das Programm "D:\VC PLUS PLUS\uebung07\uebung07_01\Debug\uebung07_01.exe" wurde mit Code 0 (0x0) beendet.Ach ja, benutze VS 6.0 sp6, unter WinXP prof.
thx schonmal im vorraus
Yeti
-
@Yeti
bei dem Prog wird test ausgegeben. Dann ist das Programm beendet und schließt sich. einfach eincin.get();einbauen.
-
danke, hat geholfen
