MFC зависает при загрузке, если вызвана функция dllimport

У меня есть приложение MFC «Анализатор», которое использует Dll с ресурсами.

Существует функция для получения экземпляра Dialog, содержащегося в dll, называемая GetCriteriaDlg.

Мой файл DLL:

extern "C" {__declspec(dllexport) CCriteriaDlg* GetCriteriaDlg(void );}

in the dll cpp file I have

extern "C"{
__declspec(dllexport) CCriteriaDlg* GetCriteriaDlg(void )
{
return &dlg;
}
}

Мой AnalyserDoc.cpp, где я использую функцию:

extern "C" {__declspec(dllimport) CCriteriaDlg* GetCriteriaDlg(void );}

в dll также есть класс

class AFX_EXT_CLASS CCriteriaDlg : public CDialog

И они являются точной копией экспортированного файла заголовка класса, включенного в AnalyserDoc.cpp под именем DllImports.h

AnalyserDoc.cpp имеет функцию, которая сопоставлена ​​с пунктом меню

Void CAnalyserDoc::OnAnalyseRun()
{
// TODO: Add your command handler code here
CCriteriaDlg *dlg=GetCriteriaDlg();
dlg->DoModal();
}

Теперь вот где это становится странным. Если у меня все как есть, программа запускается, но обычное окно SD MFC никогда не появляется, и мне приходится завершать процесс из диспетчера задач.

Но если бы я должен был закомментировать содержание OnAnalyseRun() затем окно загружается нормально (но, очевидно, тогда они не действуют при вызове метода, я попытался поменяться местами, и если я объявляю * dlg только без вызова метода, окно загружается нормально, поэтому я думаю, что оно определенно имеет отношение к GetCriteriaDlg(),

Почему это происходит?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]