2

最近、MFC を使用する C++ プロジェクトを VS2008 から VS2010 に移動しました。

また、小さな問題があります。MDI インターフェイスでは、関数 CWinApp::OpenDocumentFile を呼び出した後、アプリはファイルを開くだけでなく、新しい空の MDI ウィンドウも作成します。

ツールセット (プロジェクト プロパティ -> 一般 -> プラットフォーム ツールセット) を v90 (VS2008) に戻すと、この問題は発生しません。

誰かが同じ問題を見て、私たちが間違っていることを知っているのではないでしょうか?

4

2 に答える 2

2

解決しました。多分説明は誰かを助けるでしょう:

問題は MFC 関数にありました:

CDocument* CDocManager::OpenDocumentFile(LPCTSTR lpszFileName)

VS2008では関数を呼び出しました

return pBestTemplate->OpenDocumentFile(szPath);

VS2010では、別の関数を呼び出します(パラメーターの数が異なります)

return pBestTemplate->OpenDocumentFile(szPath, bAddToMRU, TRUE);

CMultiDocTemplate の独自の実装ではオーバーライドしませんでした

于 2013-01-16T18:03:37.327 に答える
0

実際には、opendocumentfile 関数を呼び出すファイル docmgr.cpp に変更があります。

CMultiDocTemplate からクラスを派生させた場合は、この変更に注意してください。

実際、あなたの投稿は、アプリケーションのエラーを見つけるのに役立ちました。

于 2013-08-20T17:16:08.543 に答える