aspoka Temat założony przez niniejszego użytkownika |
[WinAPI] undefined reference to `WndProc(HWND__*, unsigned int, unsigned int, long)@16' » 2013-09-17 10:28:41 Witam. Gdy kompiluje program to wyświetla się błąd. Treść programu: #include <windows.h>
HWND Ramka, Pole_tekstowe, Pole_opcji_1, Pole_opcji_2, Lista_rozwijana, Pole_wyboru_1, Pole_wyboru_2, Przycisk;
LPSTR NazwaKlasy = "KlasaOkna"; MSG Komunikat;
LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { WNDCLASSEX ko; ko.cbSize = sizeof( WNDCLASSEX ); ko.lpfnWndProc = WndProc; ko.hInstance = hInstance; ko.hCursor = LoadCursor( NULL, IDC_ARROW ); ko.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 ); ko.lpszClassName = "WindowClass"; ko.hIcon = LoadIcon( NULL, IDI_APPLICATION ); ko.hIconSm = LoadIcon( NULL, IDI_APPLICATION ); if( !RegisterClassEx( & ko ) ) return 0; HWND hwnd; hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, "Nazwa Klasy", "Tytuł okna", WS_VISIBLE | WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 375, 330, NULL, NULL, hInstance, NULL ); Ramka = CreateWindowEx( 0, "BUTTON", "Ramka", WS_CHILD | WS_VISIBLE | BS_GROUPBOX, 10, 10, 335, 270, hwnd, NULL, hInstance, NULL ); Pole_tekstowe = CreateWindowEx( WS_EX_CLIENTEDGE, "COMBOBOX", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 30, 150, 30, hwnd, NULL, hInstance, NULL ); Lista_rozwijana = CreateWindowEx( WS_EX_CLIENTEDGE, "COMBOBOX", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | CBS_DROPDOWN, 20, 80, 150, 200, hwnd, NULL, hInstance, NULL ); SendMessage( Lista_rozwijana, CB_ADDSTRING, 0,( LPARAM ) "Opcja1" ); SendMessage( Lista_rozwijana, CB_ADDSTRING, 0,( LPARAM ) "Opcja2" ); SendMessage( Lista_rozwijana, CB_ADDSTRING, 0,( LPARAM ) "Opcja3" ); Pole_wyboru_1 = CreateWindowEx( 0, "BUTTON", "Pole wyboru 1", WS_CHILD | WS_VISIBLE | BS_CHECKBOX, 210, 30, 125, 30, hwnd, NULL, hInstance, NULL ); Pole_wyboru_2 = CreateWindowEx( 0, "BUTTON", "Pole wyboru 2", WS_CHILD | WS_VISIBLE | BS_CHECKBOX, 210, 80, 125, 30, hwnd, NULL, hInstance, NULL ); Pole_opcji_1 = CreateWindowEx( 0, "BUTTON", "Pole opcji 1", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, 210, 130, 125, 30, hwnd, NULL, hInstance, NULL ); Pole_opcji_2 = CreateWindowEx( 0, "BUTTON", "Pole opcji 2", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, 210, 180, 125, 30, hwnd, NULL, hInstance, NULL ); Przycisk = CreateWindowEx( 0, "BUTTON", "Przycisk", WS_CHILD | WS_VISIBLE, 127, 230, 70, 30, hwnd, NULL, hInstance, NULL ); ShowWindow( hwnd, nCmdShow ); UpdateWindow( hwnd ); while( GetMessage( & Komunikat, NULL, 0, 0 ) ) { TranslateMessage( & Komunikat ); DispatchMessage( & Komunikat ); } return Komunikat.wParam; }
LRESULT CALLBACK WinProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{ switch( msg ) { case WM_CLOSE: DestroyWindow( hwnd ); break; case WM_DESTROY: PostQuitMessage( 0 ); break; defaylt: return DefWindowProc( hwnd, msg, wParam, lParam ); case WM_COMMAND: if(( HWND ) lParam == Przycisk ) MessageBox( hwnd, "Nacisnięto pszycisk!", "Komunikat", MB_ICONINFORMATION ); break; } return 0; }
Treść błędu: 6 20 C:\Users\Mateusz\Documents\Nauka_do_gry.cpp [Warning] deprecated conversion from string constant to 'LPSTR {aka char*}' [-Wwrite-strings] [Linker error] C:\Users\Mateusz\AppData\Local\Temp\ccsCwpGG.o:Nauka_do_gry.cpp:(.text+0x10): undefined reference to `WndProc(HWND__*, unsigned int, unsigned int, long)@16' C:\Users\Mateusz\Documents\collect2.exe [Error] ld returned 1 exit status Z góry dzięki. |