Valentin 1.) Создайте .rc файл с диалогом в любом редакторе или же руками, далее - компилируете файл с ресурсами, его линкуете к вашей DLL. 2.) Можно создать функцию в библиотеке и оперировать с диалогом в ней, смотря в чем задача заключается. можно так Код (Text): DWORD hinst=LoadLibarary("somename.dll"); DWORD hdlg=CreateDialog(hinst, "DLG_NAME", hwnd, (DLGPROC) DialogProc); //далее работа с диалогом
Суть в следующем. Dll -ки представляют собой плагины AddIns, расширяющие возможность одной из программ. Единственная ф-ция экспорта этих Dll - "InstallDll" без параметров. Т.е. , вызывая из программы "InstallDll" , вызываются или отдельные ф-ции или Диалоги с прогграммой, в зависимости от того, как построена ДЛЛ. Задача: написать ДЛЛ, которая экспортирует мини-программу ("InstallDll") с диалогом (как класс) или по- другому . Я не могу получить из ДЛЛ ничего, кроме MessageBox.
Попробовал для данной задачи: InstallDll proc LOCAL icce:INITCOMMONCONTROLSEX mov icce.dwSize, SIZEOF INITCOMMONCONTROLSEX mov icce.dwICC, ICC_DATE_CLASSES invoke InitCommonControlsEx,ADDR icce Dialog "Календарь","MS Sans Serif",10, \ ; caption,font,pointsize WS_OVERLAPPED or DS_FIXEDSYS, \ ; style 2, \ ; control count 0,21,189,121, \ ; x y co-ordinates 1024 ; memory buffer size DlgMonthCal MCS_WEEKNUMBERS,5,5,129,100,101 DlgButton "Выход",WS_TABSTOP,141,5,40,12,IDCANCEL CallModalDialog hInstance,0,dlgproc,NULL ret InstallDll endp ; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« dlgproc proc hWinWORD,uMsgWORD,wParamWORD,lParamWORD .if uMsg == WM_COMMAND .if wParam == IDCANCEL jmp dlg_end .endif .elseif uMsg == WM_CLOSE dlg_end: invoke EndDialog,hWin,0 .endif xor eax, eax ret dlgproc endp ================================== Из ЕХЕ вызывается нормально. Спасибо. Буду пробовать с DialogBoxParam