Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, Аноним, Вы писали:
А>>я другой аноним
К>Зарегистрируйся, э?
уговорил
вот dll-ка
#include "mDialog.h"
#include "resource.h"
HWND hwnd;
HINSTANCE hLib;
int WINAPI DllMain(HINSTANCE hInstance,DWORD fdwReason,PVOID pvReserved)
{
hLib=hInstance;
return(TRUE);
}
EXPORT int LoadMainDialog(HWND hwnd)
{
return (DialogBox(hLib,MAKEINTRESOURCE(IDD_MAINFORMVIEW),hwnd,(DLGPROC)DlgProcMain));
}
BOOL CALLBACK DlgProcMain(HWND hDlg,UINT iMsg,WPARAM wParam,LPARAM lParam)
{
switch(iMsg)
{
case WM_INITDIALOG:
return(TRUE);
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDC_BUTTON1:
MessageBox(hDlg,"a","a",MB_OK);
return(TRUE);
case IDC_BUTTON2:
MessageBox(hDlg,"b","b",MB_OK);
return(TRUE);
}
}
return(FALSE);
}
а вот приложение
#include <windows.h>
#include "mDialog.h"
#include "resource.h"
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HWND hwnd;
HWND hDlg;
HINSTANCE hInst;
HINSTANCE hLib;
typedef HWND (*mainDlg)(HWND);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int iCmdShow)
{
static char szAppName[]="soft";
MSG msg;
WNDCLASSEX wndclass;
mainDlg mDlg;
...
hwnd=CreateWindow(szAppName,"Soft",WS_OVERLAPPED,CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
hInst=hInstance;
hLib=LoadLibrary("mDialog.dll");
if (hLib!=NULL)
{
mDlg=(mainDlg)GetProcAddress(hLib,"LoadMainDialog");
if (mDlg!=NULL)
hDlg=((mDlg)(hwnd));
}
else
{
MessageBox(NULL,"error","error",MB_OK);
}
ShowWindow(hwnd,iCmdShow);
UpdateWindow(hwnd);
...
return(msg.wParam);
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam)
{
...
switch (iMsg)
{
case WM_CREATE:
cx=GetSystemMetrics(SM_CXSCREEN);
cy=GetSystemMetrics(SM_CYSCREEN);
...
}
проблема — вешаю прогу и не пойму почему
спасибо