C::B_5859 - minGW - commctrls
-
Hallo an Alle,
ich habe gerade mit Code::Blocks angefangen und meine ersten kleinen
Projekte laufen auch ganz gut. Nur wenn ich eine Trackbar-Controll
einbinde, wird die Anwendung sofort wieder beendet.
Der Compiler gibt aber keine Fehlermeldung aus.Ich kann auch InitCommonControlsEx nicht einbinden:
INITCOMMONCONTROLSEX ICC; ICC.dwSize = sizeof(ICC); ICC.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(ICC);||=== TrackBar, Debug ===|
X:\TrackBar\main.cpp||In function 'int WinMain(HINSTANCE__, HINSTANCE__, CHAR*, int)'Neutral
X:\TrackBar\main.cpp|42|error: 'INITCOMMONCONTROLSEX' was not declared in this scope|
X:\TrackBar\main.cpp|42|error: expected ';' before 'ICC'|
X:\TrackBar\main.cpp|44|error: 'ICC' was not declared in this scope|
X:\TrackBar\main.cpp|46|error: 'InitCommonControlsEx' was not declared in this scope|
||=== Erstellen beendet: 4 Fehler, 0 Warnungen===|#define WIN32_LEAN_AND_MEAN #include <windows.h> #include <commctrl.h> #include "resource.h" HINSTANCE hInst; BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_INITDIALOG: return TRUE; case WM_CLOSE: EndDialog(hwndDlg, 0); return TRUE; case WM_LBUTTONDOWN: SendMessage(hwndDlg, WM_CLOSE, 0, 0); return TRUE; case WM_COMMAND: switch(LOWORD(wParam)) { //Button schliessen case IDC_cmdSchliessen: SendMessage(hwndDlg,WM_CLOSE,0,0); return TRUE; } } return FALSE; } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { INITCOMMONCONTROLSEX ICC; ICC.dwSize = sizeof(ICC); ICC.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(ICC); hInst = hInstance; // The user interface is a modal dialog box return DialogBox(hInstance, MAKEINTRESOURCE(DLG_MAIN), NULL, DialogProc);#include "resource.h" DLG_MAIN DIALOGEX 25,34,194,106 CAPTION "Trackbar" FONT 8,"MS Sans Serif",0,0,1 STYLE WS_VISIBLE|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|DS_CENTER|DS_3DLOOK BEGIN CONTROL "Schliessen",IDC_cmdSchliessen,"Button",WS_CHILD|WS_VISIBLE|WS_TABSTOP,126,69,54,24 CONTROL "",IDC_HTRECK,"msctls_trackbar32",WS_CHILD|WS_VISIBLE,18,21,162,27 ENDIch vermute ich muss noch irgend wo eine lib einbinden, aber wo???
Danke für jede Hilfe.
-
Dieser Thread wurde von Moderator/in phlox81 aus dem Forum Andere GUIs - Qt, GTK+, wxWidgets in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
http://msdn.microsoft.com/en-us/library/bb775697(VS.85).aspx
Import library comctl32.lib
-
Ich vermute ich muss noch irgend wo eine lib einbinden, aber wo???
entweder mittels
#pragma comment (lib,"*.lib");in deinem project
oder wenn du vs 2008 verwendest ist der weg die *.lib zu linken wie folgt...
- unter Project-Eigenschaften (rechter mausklick auf's Project/ Popup Menu Eigenschaften)
- in der Baumstrucktur Konfigurationseigenschaften / Linker / Eingabe
links in der Listenansicht Zusätzliche Abhängigkeiten die *.lib auswählen bzw. eintragen
- Button Übernehmen drücken
- in der Baumstrucktur Konfigurationseigenschaften / Linker / Befehlszeile
kannst du dann wieder Links nachkucken ob die hinzugefügte *.lib auch in der Befehlszeile steht
-
Danke für eure Hilfe.
Ich werde mir das noch anschauen müssen.
'#pragma comment' gibt es ja nur bei M$ und ist nicht nach ANSI.
Bei CB ist unter 'Projekt-Properties-Libraries' die comctl32 angegeben,
aber es funktioniert noch nicht.
Das der Proces mit -1 beendet wird, hat aber mit dem zu tun,
denn wenn ich den Trackbar entferne, läuft alles wieder ganz normal.Danke.
-
Ich habs gefunden!
Ich muss bei C::B die DLL selbst einbinden:

HINSTANCE hinstDll; hinstDll = LoadLibrary("comctl32.dll");Besten Dank.