Здравствуйте, Аноним, Вы писали:
А>я другой аноним
Зарегистрируйся, э?
А>но не подскажите как интерфейс главного окна(диалог) грузануть из 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);