/**************************************************************************** PROGRAM: TESTDLL.C PURPOSE: Ohjelma STRLIB-kirjaston testaamiseksi. Editor: Vesa Lappalainen 9.11.1992 PROJECT: Ohjelma voidaan käyttää käyttämään joko .DLL-kirjastoa tai tavallista kirjastoa. STRDLL-kirjasto: 1) Käännä STRDLL.C siellä olevien ohjeiden mukaan STRDLL.DLL:ksi 2) Tee tälle pääohjelmalle projekti: TESTDLL.C TESTDLL.DEF Tavallinen kirjasto: 1) Tee projekti: TESTDLL.C KYSYJONO.DEF STRLIB.C KYSYJONO.RC ****************************************************************************/ #include /* Tarvitaan kaikissa Windows C-ohjelmissa */ #include #include "strdll.h" #include "kysyjono.h" #define CALLBACK_E CALLBACK _export /* Nyt .DEF tiedosto ei tarvitse EXPORT*/ #define WCLASSNAME "WKysyjonoWClass" HANDLE GhInstance; /***************************************************************************/ LONG FAR PASCAL MainWndProc(HWND hWnd, unsigned message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; static char jono[8]="Vesa"; switch (message) { case WM_PAINT: /* Viesti: Piirrä ikkuna uudelleen */ if ( BeginPaint(hWnd,&ps) ) TextOut(ps.hdc, 10, 10, jono,strlen(jono)); EndPaint(hWnd,&ps); return (NULL); case WM_CHAR: KysyJono("Mikä on nimesi?",jono,jono,sizeof(jono)); InvalidateRect(hWnd,NULL,TRUE); break; case WM_DESTROY: /* Viesti: ikkuna hävitetään */ PostQuitMessage(0); return (NULL); default: /* Antaa Windowsin käsitellä muut */ break; } return (DefWindowProc(hWnd, message, wParam, lParam)); } /***************************************************************************/ int PASCAL WinMain(HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASS wc; /* Ikkunaluokka */ HWND hWnd; /* Pääikkunan kahva */ MSG msg; /* Viesti */ if (lpCmdLine); /* Hämäystä, jottei valitusta param. käytt. */ GhInstance = hInstance; if (!hPrevInstance) { /* Onko muita esiintymiä käynnisssä? */ wc.style = NULL; wc.lpfnWndProc = MainWndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = GetStockObject(WHITE_BRUSH); wc.lpszMenuName = NULL; wc.lpszClassName = WCLASSNAME; if (!RegisterClass(&wc)) return (FALSE); } hWnd = CreateWindow(WCLASSNAME,"Kysy jono -testi",WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL,NULL,hInstance,NULL); if (!hWnd) return (FALSE); ShowWindow(hWnd, nCmdShow); /* Näytetään ikkuna */ UpdateWindow(hWnd); /* Lähetetään WM_PAINT viesti */ while (GetMessage(&msg,NULL,NULL,NULL)) { TranslateMessage(&msg); /* Tulkitaan virtuaaliset näp. koodit */ DispatchMessage(&msg); /* Lähetetään viesti ikkunalle */ } return (msg.wParam); /* Palautetaan PostQuitMessage-funktion arvo */ }