vc+mapx开发的程序“建立空文档失败”的最可能原因
2010-03-10 00:37
399 查看
从别人那里拷来MapX+MFC的程序琢磨,在别人机子上能正确运行,到了自己机器编译通过,点击运行总是提示“建立空文档失败。”,跟踪调试发现,在下面的函数中出现问题:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1) //该处CFrameWnd::OnCreate()返回-1,导致弹出出错提示!
return -1;
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar/n");
return -1; // fail to create
}
百度发现,很多帖子分析了出错原因,但我根据帖中内容调试未有任何收获。无意中找到一个CSDN的老帖子讨论这个问题,恍然大悟。
原来我的机子上没装MapX这个ActiveX控件...
以前没怎么接触过Active控件(自己用ActiveX控件写过一些小程序,但没在别人机子上跑过,故没早遇到这种情况),这次算是一次经验积累吧。
在此提醒跟我情况差不多的新手们一定要注意这个问题,免得浪费太多时间在这些细节上。
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1) //该处CFrameWnd::OnCreate()返回-1,导致弹出出错提示!
return -1;
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar/n");
return -1; // fail to create
}
百度发现,很多帖子分析了出错原因,但我根据帖中内容调试未有任何收获。无意中找到一个CSDN的老帖子讨论这个问题,恍然大悟。
原来我的机子上没装MapX这个ActiveX控件...
以前没怎么接触过Active控件(自己用ActiveX控件写过一些小程序,但没在别人机子上跑过,故没早遇到这种情况),这次算是一次经验积累吧。
在此提醒跟我情况差不多的新手们一定要注意这个问题,免得浪费太多时间在这些细节上。
相关文章推荐
- VC多文档转为单文档后 弹出“建立空文档失败”对话框——原因及解决方案
- VC编译ADO的开发环境和客户环境的细微差别可能导致的失败
- VC 开发单文档程序窗口运行即最大化
- VC下MapX开发环境建立
- VC开发单文档程序窗口运行即最大化
- VC下MapX开发环境建立
- VC下MapX开发环境建立
- VC下MapX开发环境建立
- 多文档、多模板程序建立新的子框架类后,出现“建立空文档失败”问题的解决办法
- 使用VC开发ActiveX时,提示程序无法启动 要注册利用“regsvr32”命令控件的注册,注册失败方法
- VC编译ADO的开发环境和客户环境的细微差别可能导致的失败
- 多文档程序框架中建立新的子框架类后出现“创建空文档失败”的问题
- VC开发程序,常见C2001,C2005等错误的原因浅析
- CMSComm 控件在程序发布后无法建立creat 返回建立空文档失败和 Failed to create OLE Communications Control 错误
- VC编译ADO的开发环境和客户环境的细微差别可能导致的失败
- 以CRichEditView为基类的MFC单文档程序向导建立后编译成功运行失败问题
- 解决多文档程序框架中建立新的子框架类后出现“创建空文档失败”的问题
- vc 建立空文档失败 问题跟踪 .
- VC 开发单文档程序窗口运行即最大化
- VC编译ADO的开发环境和客户环境的细微差别可能导致的失败 pCmd.CreateInstance("ADODB.Command") 0x80004002