Недавно мы перенесли наш проект C ++, использующий MFC, с VS2008 на VS2010.
И здесь есть небольшая проблема: в нашем интерфейсе MDI после вызова функции CWinApp :: OpenDocumentFile приложение не только открывает файл, но и создает новое пустое окно MDI.
Если мы изменим набор инструментов (Свойства проекта -> Общие -> Набор инструментов платформы) обратно на v90 (VS2008), мы не столкнемся с этой проблемой.
Может, кто-то видел такую же проблему и знает, что мы делаем не так?
Решаемые. может объяснение кому-нибудь поможет
Проблема была в функции MFC:
CDocument* CDocManager::OpenDocumentFile(LPCTSTR lpszFileName)
в VS2008 это называется функцией
return pBestTemplate->OpenDocumentFile(szPath);
в VS2010 он вызывает другую функцию (с другим количеством параметров)
return pBestTemplate->OpenDocumentFile(szPath, bAddToMRU, TRUE);
который мы не переопределяли в нашей собственной реализации CMultiDocTemplate
фактически происходит изменение в файле docmgr.cpp, который вызывает функцию opendocumentfile.
если вы получили класс из CMultiDocTemplate, следите за этими изменениями.
На самом деле ваш пост помог мне найти ошибку в моем приложении.