Вопрос

У меня возникли проблемы с некоторым кодом для создания окна на основе CDialog.На прошлой неделе код работал нормально.Единственными изменениями, которые я внес, была замена C ++ deque на хэш-массив.Я закомментировал строку кода с вызовом метода 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 .Сейчас я провожу дополнительные тесты по этому вопросу.

Это было полезно?

Решение

Проблемы, похоже, были с вызовом CDynLinkLibrary().

Я прокомментировал это по просьбе компании, которая пишет программное обеспечение, которое загружает мой плагин.Добавление этой строки обратно привело к тому, что некоторые значения по-прежнему были равны null, но теперь окно создано правильно.

Я собираюсь провести небольшое исследование по этому поводу и сообщу, если что-нибудь найду.Если кто-то знает об этом больше меня (это несложно сделать), не стесняйтесь оставлять комментарии.

Другие советы

Использует ли диалоговое окно какие-либо элементы управления, которые могут быть причиной проблемы?Например, richedit?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top