首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MFC CDialog::Create失败

MFC CDialog::Create失败
EN

Stack Overflow用户
提问于 2009-05-07 15:44:13
回答 2查看 4.8K关注 0票数 1

我在创建一个基于CDialog的窗口时遇到了一些代码问题。上周代码运行正常。我所做的唯一更改是用一个散列数组替换了一个C++双队列。我注释掉了这行代码,并调用了Create方法,以允许我跳过加载窗口。现在代码根本不再创建窗口了。

Create函数返回false,GetLastError函数返回0。我没有在窗口中使用任何自定义控件--只使用了一个复选框和一个列表控件。据我所知(此时我无法连接调试器),OnCreate和OnInitDialog函数根本没有被调用。

我粘贴了下面的代码,我一直使用这些代码来测试创建函数的返回和GetLastError

代码语言:javascript
复制
BOOL result = ORDER_HANDLER_GUI.Create(OrderHandlerGUI::IDD, AfxGetMainWnd());
int error = ::GetLastError();

if(result)
    AfxMessageBox("Created GUI");
else
{
    CString msg;
    msg.Format("%d", error);
    AfxMessageBox("Could not create GUI");
    AfxMessageBox(msg);
}

更新:我终于设法让调试器附加上了(这是一个加载到第三方应用程序中的插件,由于某种原因,它不喜欢调试器)。在单步执行代码之后,AfxGetMainWnd()似乎返回NULL。我现在正在做更多的测试。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-05-07 20:59:57

问题似乎出在对CDynLinkLibrary()的调用上。

我在编写加载我的插件的软件的公司的要求下注释掉了这一点。将此行添加回中会导致某些值仍然为空,但窗口现在已正确创建。

我将对此做一些研究,如果我发现了什么,我会更新的。如果有人比我更了解这一点(不难做到),请随时发表评论。

票数 1
EN

Stack Overflow用户

发布于 2009-05-07 16:51:25

该对话框是否使用了任何可能导致问题的控件?例如,一个richedit?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/835419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档