WinMain
WinMain
WinMain funkcja główna każdej okienkowej aplikacji. Jej składnie jest następująca:
int WINAPI WinMain( HINSTANCE hInstance, // uchwyt do aktualnego okna instance hPrevInstance hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // pointer to command line int nCmdShow // show state of window );
Ta funkcja przyjmuje następujące 4 argumenty:
hInstance – typu HINSTANCE – jest to uchwyt do naszego okna
hPrevInstance – typu hPrevInstance – to również jest uchwyt ale do poprzedniej instalacji; jest nieużywany więc można o nim praktycznie zapomnieć
lpCmdLine – typu LPSTR – jest to łańcuch znaków. Gdy chcemy uruchomić nasz program z argumentami to właśnie poprzez ten łańcuch możemy się do nich „dobrać”. Przykładem czegoś takiego jest np. ping –a –s XXX.XXX.XXX.XXX , gdzie X to adres IP komputera.
NCmdShow – typu int (liczba całkowita) – od niej zależeć będzie czy okno ma zostać np. zminimalizowane czy maksymalizowane mówiąc w skrócie sposób wyświetlania okna.
Przykładem zastosowanie tej funkcji zamieszczam poniżej (wygenerowane przez Dev-C++):
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { HWND hwnd; /* This is the handle for our window */ MSG messages; /* Here messages to the application are saved */ WNDCLASSEX wincl; /* Data structure for the windowclass */ //... /* Run the message loop. It will run until GetMessage() returns 0 */ while (GetMessage (&messages, NULL, 0, 0)) { /* Translate virtual-key messages into character messages */ TranslateMessage(&messages); /* Send message to WindowProcedure */ DispatchMessage(&messages); } /* The program return-value is 0 - The value that PostQuitMessage() gave */ return messages.wParam; }
Kategoria: WinAPI
int WINAPI WinMain(
HINSTANCE hInstance, // uchwyt do aktualnego okna instance
hPrevInstance hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // pointer to command line
int nCmdShow // show state of window
);
powinno być
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // pointer to command line
int nCmdShow // show state of window
);
// hInstance – typu HINSTANCE – jest to uchwyt do naszego okna
to jest uchwyt identyfikujący instancję aplikacji
// hPrevInstance – typu hPrevInstance – to również jest uchwyt ale do poprzedniej instalacji;
// jest nieużywany więc można o nim praktycznie zapomnieć
chyba do poprzedniej instancji, i nie typu hPrevInstance tylko typu HINSTANCE
// lpCmdLine – typu LPSTR – jest to łańcuch znaków.
to jest wskaźnik na łańcuch znaków (LP = Long Pointer)