Serialisierungsproblem



  • So Gemeinde, es ist mal wieder so weit, ich brauche dringend eure Hilfe bevor ich noch ganz verzweifle.
    Also folgendes Problem:

    Ich habe in einem Dialog ein Editfeld, dessen Inhalt als String serialisiert wird,
    so weit so gut. Wenn ich nun aber den Text nicht von Hand eingebe sondern mit SetDlgItemText den Dateinamen aus einem CFileDlg einfüge, versagt die Serialisierung. Der Debugger zeigt in der Zeile ar << m_fileName den Richtigen Wert an, nur kommt der nie in meinem File an, dort steht dann immer nur der letzte per Hand eingtragene Wert. Es scheint zudem egal zu sein, ob ich m_fileName direkt setzte und Updatedata(FALSE) aufrufe oder eben mit SetDlgItemText arbeite.

    Ich bin echt mit meinem Latein am Ende und für jede Hilfe dankbar.



  • Ich habs herausgefunden 😃
    Das Problem ist, daß beim Klick auf Öffnen in CFileDialog das current directory neu gesetzt wird damit steht beim start meines Programms die Speicherdatei an einem anderen Ort und wird natürlich nicht geöffnet.
    Ich habe allerdings auch nirgends eine Dokumentation gefunden, die dieses Verhalten beschreibt und wie man es umgehen kann, extra neu ableiten wollte ich nicht. Im Moment merke ich mir das Verzeichniss und setzte es dann neu.

    Viele Grüße

    connan

    Edit: Mann, Mann 2 Monate hats gedauert 🙄


  • Mod

    Du solltest niemals Dateien ohne Pfadangabe öffnen, wenn Du weißt wo die Datei liegt. Es gibt es sogenanntes current workinbg directory (CWD).
    Du solltest beachten das dieses CWD auch über einen Link beim Programmstart verändert werden könnte.

    Wenn Du die Datei im Programmverzeichnis öffnen möchtest dann besorge Dir mit GetModuleFileName den Namen des ausgeführten Prozesses inkl. dem Pfad.



  • Yep, Danke, genauso mach ichs jetzt.


Anmelden zum Antworten