最近我们移动了使用MFC的C ++项目,从VS2008到VS2010。
还有一个小问题:在我们的MDI界面中,在我们调用函数CWinApp :: OpenDocumentFile之后,应用程序不仅会打开文件,还会创建一个新的空MDI窗口。
如果我们将工具集(项目属性 - >常规 - >平台工具集)更改回v90(VS2008),我们就不会遇到此问题。
也许有人看到同样的问题并知道,我们做错了什么?
答案 0 :(得分:2)
解决。也许这个解释会对某人有所帮助:
问题在于MFC功能:
CDocument* CDocManager::OpenDocumentFile(LPCTSTR lpszFileName)
在VS2008中,它调用了一个函数
return pBestTemplate->OpenDocumentFile(szPath);
<>在VS2010中,它调用另一个函数(具有不同数量的参数)
return pBestTemplate->OpenDocumentFile(szPath, bAddToMRU, TRUE);
我们没有在我们自己的CMultiDocTemplate实现中重写
答案 1 :(得分:0)
有效的是docmgr.cpp文件发生了变化,调用了opendocumentfile函数。
如果您从CMultiDocTemplate派生了一个类,请注意此更改。
事实上,你的帖子帮助我在我的应用程序中找到了错误。