VC多文档转为单文档后 弹出“建立空文档失败”对话框——原因及解决方案
来源:互联网 发布:大学和老师谈恋爱知乎 编辑:程序博客网 时间:2024/05/21 22:31
同事把一个VC++2003开发的多文档工程转化为单文档工程,按照网上所说,做了修改。但是在
BOOL CSDITestApp::InitInstance()中的语句
if (!ProcessShellCommand(cmdInfo)) 运行后弹出“创建空文档失败”对话框。困扰了他一段时间(两天),我拿来调了一会,只感觉应该是CMainFrame创建失败导致,不过没找出真正原因。后来还是他发现了原因并修改成功。原因:把多文档工程改为单文档后,CMainFrame对象的创建方式发生了改变。多文档中是显示生成,单文档中是系统生成。
单文档如下:
CCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);// 调度在命令行中指定的命令。如果// 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回 FALSE。if (!ProcessShellCommand(cmdInfo))return FALSE;// 唯一的一个窗口已初始化,因此显示它并对其进行更新m_pMainWnd->ShowWindow(SW_SHOW);m_pMainWnd->UpdateWindow();
多文档如下:
AddDocTemplate(pDocTemplate);// 创建主 MDI 框架窗口CMainFrame* pMainFrame = new CMainFrame;if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))return FALSE;m_pMainWnd = pMainFrame;// 仅当具有后缀时才调用 DragAcceptFiles// 在 MDI 应用程序中,这应在设置 m_pMainWnd 之后立即发生// 分析标准外壳命令、DDE、打开文件操作的命令行//CCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);// 调度在命令行中指定的命令。如果// 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回 FALSE。//cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;if (!ProcessShellCommand(cmdInfo))return FALSE;// 主窗口已初始化,因此显示它并对其进行更新m_pMainWnd->ShowWindow(m_nCmdShow);m_pMainWnd->UpdateWindow();
解决方案:
把多文档CMainFrame类中的 IMPLEMENT_DYNAMIC 改为IMPLEMENT_DYNCREATE 即可,后者是动态生成,系统可以生成。
- VC多文档转为单文档后 弹出“建立空文档失败”对话框——原因及解决方案
- vc 建立空文档失败 问题跟踪
- vc 建立空文档失败 问题跟踪 .
- 建立空文档失败
- VC单文档点击菜单弹出对话框
- vc+mapx开发的程序“建立空文档失败”的最可能原因
- VS2005 建立空文档失败!
- “建立空文档失败”剖析
- 单文档、多文档、对话框
- 多文档、多模板程序建立新的子框架类后,出现“建立空文档失败”问题的解决办法
- 多文档、多模板程序建立新的子框架类后,出现“建立空文档失败”问题的解决办法
- 解决多文档程序框架中建立新的子框架类后出现“创建空文档失败”的问题
- 多文档程序框架中建立新的子框架类后出现“创建空文档失败”的问题
- 关于"建立空文档失败"的问题
- 基于对话框、单文档、多文档区别
- 单文档、多文档、对话框的区别
- VC单文档 添加对话框 及其函数
- 建立单文档多视图
- ANDROID更改CPU信息
- pthon 爬虫
- 对齐
- NPAPI插件开发详细记录:用VS2010开发NPAPI插件步骤
- 腾讯马拉松20号第一题
- VC多文档转为单文档后 弹出“建立空文档失败”对话框——原因及解决方案
- MTK智能机开发总结(待续)
- 程序员的饭碗和杯具
- Hadoop使用常见问题以及解决方法
- TCMalloc源码阅读(二)--线程局部缓存ClassSize分析
- 制作cab文件实录
- VC下揭开“特洛伊木马”的隐藏面纱
- svn 分支合并(Subclipse例子)
- win7下windbg无法找到正确调试符号问题