[WinAPI] undefined reference to `__imp_InitCommonControlsEx' - problem z instalacją Common Controls
Ostatnio zmodyfikowano 2015-02-25 08:15
mikson Temat założony przez niniejszego użytkownika |
[WinAPI] undefined reference to `__imp_InitCommonControlsEx' - problem z instalacją Common Controls » 2015-02-23 18:58:52 Gdy próbuję dołączyć do programu InitCommonControlsEx (libcomctl32.a) kompilator wywala taki błąd: main.cpp:(.text+0x45c): undefined reference to `__imp_InitCommonControlsEx' [Error] ld returned 1 exit status Oczywiście plik z biblioteką mam zalinkowany. Oto kod: #include <iostream> #include <windows.h> #include <fstream> #include <time.h> #include <tchar.h> #include <cstdio> #include <stdio.h> #include <algorithm> #include <vector> #include <Wininet.h>
#define pLogZaloguj 501 #define pLogZapomnialem 502 #define cLogZapamietaj 503 #define tLogLogin 504 #define tLogHaslo 505
#if defined __MINGW_H #define _WIN32_IE 0x0400 #endif #include <commctrl.h>
using namespace std;
HBRUSH g_hBrush;
ofstream logStworz( "log.txt" ); std::fstream log;
HWND hwndLog; HWND hwnd;
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { WNDCLASSEX wc; MSG Msg; memset( & wc, 0, sizeof( wc ) ); wc.cbSize = sizeof( WNDCLASSEX ); wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hCursor = LoadCursor( NULL, IDC_ARROW ); wc.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 ); wc.lpszClassName = "WindowClass"; wc.hIcon = LoadIcon( NULL, IDI_APPLICATION ); wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION ); INITCOMMONCONTROLSEX icc; icc.dwSize = sizeof( INITCOMMONCONTROLSEX ); icc.dwICC = ICC_BAR_CLASSES; InitCommonControlsEx( & icc ); log.open( "log.txt", std::ios::in | std::ios::out | std::ios::trunc ); log << "Log rozpoczęty.\n";
Co może być przyczyną błędu? |
|
mikson Temat założony przez niniejszego użytkownika |
» 2015-02-24 14:45:06 |
|
Brunon3 |
» 2015-02-24 18:13:02 "Ktoś" mi mówił że dostanę bana bo "dałem bezsensownego posta", oczywiście przez pomyłkę. A za dawanie pustych postów bana nie ma?
EDIT: Sorry nie zauważyłem że to ten sam użytkownik co założył temat, poniosło mnie, przepraszam bardzo. :) |
|
Monika90 |
» 2015-02-24 19:05:26 Nie wiem dlaczego to nie działa. Oczywiście plik z biblioteką mam zalinkowany.
|
W jaki sposób go zalinkowałeś? Jakiego kompilatora używasz? Zastąp to INITCOMMONCONTROLSEX icc; icc.dwSize = sizeof( INITCOMMONCONTROLSEX ); icc.dwICC = ICC_BAR_CLASSES; InitCommonControlsEx( & icc );
tym i napisz czy coś to zmieniło. @Brunon3 Nikt nie da Ci bana za jeden bezsensowny post, ale za 100 takich postów to już całkiem możliwe. |
|
mikson Temat założony przez niniejszego użytkownika |
» 2015-02-24 20:02:51 Oczywiście plik z biblioteką mam zalinkowany. | W jaki sposób go zalinkowałeś? Jakiego kompilatora używasz? |
Używam DevC++, plik libcomctl32.a przeniosłem do lokalizacji C:\Program Files (x86)\Dev-Cpp\MinGW64\lib a następnie wszedłem w opcje projektu > Parametry > Linker > Dodaj plik i wskazałem na w/w plik. Taka zmiana absolutnie nic nie zmieniła (oprócz tego że teraz kompilator pisze undefined reference to `__imp_InitCommonControls' zamiast undefined reference to `__imp_InitCommonControlsEx') |
|
maly |
» 2015-02-24 20:39:09 plik libcomctl32.a przeniosłem do lokalizacji |
po co, na co i dlaczego? Pozatym wziąłeś pewnie nie tego co trzeba, masz tam dwa foldery lib i lib32. |
|
programirer |
» 2015-02-24 21:04:55 To ma jakieś znaczenie gdzie znajduje się plik z biblioteką? I tak trzeba podać ścieżkę w linkerze... |
|
mikson Temat założony przez niniejszego użytkownika |
» 2015-02-24 21:09:10 Przeniosłem libcomctl32.a do folderu, w którym jest EXE (zmieniłem też ścieżkę w linkerze), ale błąd nadal nie ustępuje. |
|
« 1 » 2 |