Re[5]: Интерфейс главного окна.
От: Кодт Россия  
Дата: 02.08.04 08:43
Оценка:
Здравствуйте, Аноним, Вы писали:

А>я другой аноним


Зарегистрируйся, э?

А>но не подскажите как интерфейс главного окна(диалог) грузануть из dll-ки ?

А>особенно интересует вопрос о том, как вызвать диалоговую процедуру
А>без подвешивания всей программы, если она в dll -ке
А>P.S. все чистое winapi без mfc

Диалоговую процедуру вызывает виндоуз, её вручную звать не надо!
HMODULE hdll = LoadLibrary("your.dll");
DLGPROC proc = (DLGPROC)GetProcAddress(hdll, "YourDialogProc");

// модальный
INT code = DialogBoxParam(hdll, MAKEINTRESOURCE(IDD_YOURDIALOG), NULL, proc, NULL);

// немодальный
HWND hdlg = CreateDialogParam(hdll, MAKEINTRESOURCE(IDD_YOURDIALOG), NULL, proc, NULL);
/* прокачка сообщений и всё такое */

А вообще, лучше, чтобы сама длл создавала свои диалоги:
HMODULE hdll = LoadLibrary("your.dll");

// модальный
typedef INT  (*PFN_CallYourDialog)(LPVOID param);
PFN_CallYourDialog func = (PFN_CallYourDialog)GetProcAddress(hdll, "CallYourDialog");
INT code = (*PFN_CallYourDialog)(NULL);

// немодальный
typedef HWND (*PFN_CreateYourDialog)(LPVOID param);
PFN_CreateYourDialog func = (PFN_CreateYourDialog)GetProcAddress(hdll, "CreateYourDialog");
HWND hdlg = (*PFN_CreateYourDialog)(NULL);
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.