gpt4 book ai didi

c++ - MFC CDialog::创建失败

转载 作者:行者123 更新时间:2023-11-28 08:33:22 26 4
gpt4 key购买 nike

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

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

我在下面粘贴了我用来测试 Create 函数的返回和 GetLastError 的代码

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);
}

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

最佳答案

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

我应编写加载我的插件的软件的公司的要求将其注释掉。重新添加此行导致某些值仍然为空,但窗口现在已正确创建。

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

关于c++ - MFC CDialog::创建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/835419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com