OpenDocumentFile
-
Hallo zusammen, ich habe ein Problem. Mein Programm läuft unter VS 2008/2010, ich möchte es auf VS 2017 migrieren. Es ist eine c++ mfc mdi Anwendung, mit der Viewklasse CEditView als Childfenster. Beim Start kommt bei OpenDocumentFile eine Fehlermeldung, obwohl DateiName existiert.
file2 = fopen(DateiName,"r"); // file2 ist null, obwohl die Datei vorhanden ist if ( file2 == NULL ) { file = fopen(DateiName, "w"); if ( file == NULL ) { AfxMessageBox("Fehler: Bei Dateien.txt: " + DateiName + " falsches Verzeichnis !"); LPO.LiParseCloseDateien(); return true; }; fprintf(file, "Neue Datei"); fclose(file); } else fclose(file2); OpenDocumentFile(DateiName); // hier kommt die Fehlermeldung
-
Die Fehlermeldung: es wurde ein Haltepunkt ausgelöst. Hätte ich irgendwelche Code-Tags verwenden müssen ?
-
@biter sagte in OpenDocumentFile:
Die Fehlermeldung: es wurde ein Haltepunkt ausgelöst.
Wo kommt der Inhalt von DateiName her?
Sind die Rechte für die Datei ok?Hätte ich irgendwelche Code-Tags verwenden müssen ?
Ja. Code mit der Maus markieren und auf das </> Symbol rechts neben der Auswahlbox (C++) klicken.Als Mitglied kannst du das auch nachträglich machen.
-
Was für ein Haltepunkt? Könnte das ein assert sein? Siehst du mehr? Was steht im Callstack?
-
@biter Schreibe bitte in eine Zeile vor deinen Code
``´
und in eine Zeile nach deinem Code```
. Alternativ markiere deinen Code, wähle im Dropdown über dem Bearbeitungsfenster "C++" aus (sollte aber voreingestellt sein) und klicke auf das</>
daneben.
Den Menüpunkt "Bearbeiten" findest du in dem Drei-Punkte-Menü rechts unter deinem Beitrag.
@biter sagte in OpenDocumentFile:
Mein Programm läuft unter VS 2008/2010, ich möchte es auf VS 2017 migrieren.
file2 = fopen(DateiName,"r"); // file2 ist null, obwohl die Datei vorhanden ist if ( file2 == NULL )
Dann wird wohl
DateiName
ein relativer Pfad sein und das Arbeitsverzeichnis (Current Working DIrectory, cwd) bei Visual Studio 2008/2010 anders gewesen sein, als bei Visual Studio 2017.
-
Vielen Dank für Eure Mühe, ich hab die Kiste entsorgt, nachdem ich immer wieder den Netzstecker ziehen musste, die dient mir jetzt als Ersatzteillager. Möglicherweise hätte man die noch retten können, ich habe nun einen Ersatz-PC angeschlossen, und kümmere mich später darum. Also nichts für ungut ...
-
Ich weiss nicht ob es sich gehört, das alte Thema aufzugreifen, aber das gleiche Problem habe ich mit VS 2019 Community ...
-
@Swordfish sagte in OpenDocumentFile:
Dann wird wohl
DateiName
ein relativer Pfad sein und das Arbeitsverzeichnis (Current Working DIrectory, cwd) bei Visual Studio 2008/2010 anders gewesen sein, als bei Visual Studio 2017.und 2019.
-
DateiName ist ein relativer Pfad, hier "Globale.txt". Aber auch OpenDocumentFile("C:\Projekte\GLisp80\" + DateiName); geht nicht. Also der absolute Pfad ...
-
Also richtig: OpenDocumentFile("C:\Projekte\GLisp80\" + DateiName);
-
@biter sagte in OpenDocumentFile:
Aber auch OpenDocumentFile("C:\Projekte\GLisp80" + DateiName); geht nicht. Also der absolute Pfad ...
Was ist
DateiName
? Was ist "geht nicht"?
-
Es kommt zur selben Fehlermeldung wie oben beschrieben. OpenDocumentFile("C:\Projekte\GLisp80" + DateiName); selbstverständlich mit doppelten . Die Datei liegt in C:\Projekte\GLisp80. Bei VS 2008/VS 2010 läuft alles ...
-
@biter sagte in OpenDocumentFile:
OpenDocumentFile("C:\Projekte\GLisp80" + DateiName);
'\'
s escapen ... oder'/'
nehmen.@Swordfish sagte in OpenDocumentFile:
Was ist
DateiName
?hast Du immer noch nicht beantwortet.
-
Selbstverständlich mit doppeltem Backslash, das wurde hier im Forum nur einfach angezeigt. DateiName ist eine unformatierte Text-Datei. Es muss sich um eine Neuerung bei VS 2017/2019 handeln.
-
@biter sagte in OpenDocumentFile:
Es muss sich um eine Neuerung bei VS 2017/2019 handeln.
Nein.
Was meinst Du eigentlich? CWinApp::OpenDocumentFile?
und nochmal:
@Swordfish sagte in OpenDocumentFile:
Was ist
DateiName
?Typ in deinem Programm.
-
Meine Anwendung ist eine MDI CEditView. Da werden zu Anfang die Child-Fenster mit OpenDocumentFile mit dem Text von Dateien gefüllt. Nein ? wieso geht es mit VS 2008/2010 ? CWinApp::OpenDocumentFile? Ja ! Was könnte man statt OpenDocumentFile verwenden ? DateiName ist ein CString.
-
Wie komme ich an die Assertions innerhalb von OpenDocumentFile ran ?
-
-
Stürzt bei OpenDocumentFile ab, obiges Programm. Leider habe ich noch keine Problemlösung dafür. Bei Google auch nicht. Das alte MFC-Programm pflege ich mit VS 2008, ansonsten arbeite ich mit C# .NET.
-
Was sagt denn die Windows Ereignisanzeige?