диалоговое окно в dll
От: ch_andr  
Дата: 08.04.08 17:29
Оценка:
__dll__
1. Мастером Microsoft Visual Studio 2005 создан MFC DLL "my_dll.dll" проект с поддержкой — Regular DLL using shared MFC DLL.
2. Мастером создан диалоговый ресурс
3. Мастером добавлен класс CDialog_my для созданного диалогового ресурса
4. В файл добавлена следующая функция для создания и открытия окна


extern "C" __declspec(dllexport) int MyInit(int i)
{
    CDialog_my MyDialog;//Обьект класса class CDialog_my : public CDialog
    MyDialog.DoModal();//Собственно создаем модальное окно
    return 1;
}



__exe__
1. Мастером Microsoft Visual Studio 2005 создан MFC Application проект типа Dialog based.
2. Добавлена кнопка
3. Обрабатываем нажатие

void CexeDlg::OnBnClickedButton1()
{
    HINSTANCE h = 0;
    h=LoadLibrary("my_dll.dll");//загрузка DLL

    typedef int (*TPrototype)(int p);
    TPrototype pMyInit;
    pMyInit = (TPrototype)GetProcAddress(h, "MyInit");//получение адреса функции
    int rez = pMyInit(0);//выполнение функции и собственно создание окна
}


До этого момента всё нормально работает. Но возник
__ВОПРОС__
Необходимо создать консольное приложение откуда вызывается функция pMyInit(0), чтобы открывалось окно находящееся в DLL.
Этот код не работает:

#include <windows.h>

int main ()
{
    HINSTANCE h = 0;
    h=LoadLibrary("my_dll.dll");//загрузка DLL

    typedef int (*TPrototype)(int p);
    TPrototype pMyInit;
    pMyInit = (TPrototype)GetProcAddress(h, "MyInit");//получение адреса функции
    int rez = pMyInit(0);//выполнение функции и собственно создание окна
}


Появляется ошибка во время выполнения на строке int rez = pMyInit(0);
Подскажите что нужно делать, чтобы открыть окно в dll из консоли?

09.04.08 07:05: Перенесено модератором из 'C/C++' — Odi$$ey
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.