У меня проблемы с кодом для создания окна на основе 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);
}
Обновление:
Мне наконец удалось подключить отладчик (это плагин, загруженный в стороннее приложение, которому по какой-то причине не понравился отладчик). После просмотра кода кажется, что AfxGetMainWnd () возвращает NULL. Сейчас я провожу больше тестов по этому вопросу.