mfc中domodal()调用的窗口不显示?调用的窗口 在我自己的电脑上能显示,安装到别的电脑上 就不显示了

BOOLCToolSoftwareApp::InitInstance(){AfxEnableControlContainer();//Standardinitializa... BOOL CToolSoftwareApp::InitInstance()
{
AfxEnableControlContainer();

// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.

#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif

CToolSoftwareDlg dlg; //要调用的窗口 m_pMainWnd = &dlg;
//显示打开文件对话框
CFileDialog filedlg(TRUE, "ACS Files", "*.acs",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"ACS Files(*.acs)|*.txt|Header Files(*.h)|*.h|S19 File(*.s19)|.s19|SQL Files(*.sql)|*.sql|All Files(*.*)|*.*||");
if(filedlg.DoModal() != IDOK)
{
exit(0);
}
//获取打开文件的路径
dlg.gProCfgFileName = filedlg.GetPathName();

//显示窗口 int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}

// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}

我在我的电脑上运行(安装了VC2010),是没有问题的,但是将程序打包安装到别的电脑(没装VC2010)上运行,调用的窗口就不显示了,请问是打包的时候缺少什么文件,还是程序本身的问题呢?
展开
 我来答
志远823
2012-11-14 · TA获得超过2296个赞
知道小有建树答主
回答量:913
采纳率:66%
帮助的人:1176万
展开全部
代码没什么问题,模态对话框不显示通常是OnInitDialog里发生了错误。比较常见的是对话框资源发生冲突,或者初始化控件的时候读取数据出错。
在不同的环境出问题很正常,你要解决比较容易,安装一个VMware,弄个虚拟机,安装一个和客户类似的环境,然后对虚拟机进行远程单步调试,这也是一个比较常见的调试手段。

如果是打包出了问题,比如缺了MFC高版本dll,那么程序启动的时候系统会提示缺dll,如果你没看到这个就基本排除这方面的问题。不放心的话用depends(VC自带工具)看看
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式