none
Runtime error mfc120d.dll bei CWinApp::OpenDocumentFile RRS feed

  • Frage

  • Hallo,

    ich habe eine (20 Jahre alte) MFC-Anwendung von VC++ 10.0 (VS 2010) auf VC++ 12.0 (VS 2013) ohne Probleme migriert. Einziges, aber großes Problem: Beim Ausführen gibt es nun plötzlich einen Absturz beim Aufruf von CWinApp::OpenDocumentFile(lpszFileName). Beim Debuggen erhalte ich den Runtime Error:

    Debug Assertion Failed! Program: C:\WINDOWS\SYSTEM32\mfc120d.dll. File: f:\dd\vctools\vc7libs\atlmfc\src\mfc\filelist.cpp. Line: 221

    Durch Klicken auf Retry (auch der weiteren Folgefehler) öffnet sich anschließend das gewünschte Dokument, die Anwendung läuft dann wieder stabil.

    Woran kann es liegen und welche Möglichkeit der Einflussnahme habe ich? Hat es an dieser Stelle eine Änderung zur mfc100d.dll gegeben? Könnte es ggf. auch damit zusammenhängen, dass ich VC2013 auf einem 64-Bit-Rechner betreibe?

    Über eine Antwort wäre ich sehr dankbar!

    F. Steinberg

    ).

    Montag, 19. Januar 2015 11:25

Antworten

Alle Antworten

  • SHCreateItemFromParsingName ist fehlgeschlagen. Was ist der hr Code?

    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de

    Montag, 19. Januar 2015 11:40
    Moderator
  • Lösung selbst gefunden: Offenbar wird ein fehlendes CoInitialize vor dem Aufruf von OpenDocumentFile in VS2013 durch Absturz "bestraft". Also: CoInitialize(NULL) vorher einfügen, dann geht's.  
    Dienstag, 20. Januar 2015 09:03
  • Falsch. In einer MFC Anwendung solltest Du afxOleInit aufrufen. Das passiert 1. nicht doppelt und 2. musst Du Dich nicht um den Uninit kümmern.

    Zudem gehört dieser Aufruf grundsätzlich in InitInstance,


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de


    Donnerstag, 22. Januar 2015 07:09
    Moderator