Hallo.
Ich programmiere schon recht lange mit c/c++, aber nur Kommandozeile.
Nun bin ich gerade dabei mit MinGW mein erstes Windows programm zu
erstellen.
Der Programmcode sieht so aus.
1 | #include <windows.h>
|
2 |
|
3 | LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
|
4 |
|
5 | int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPreInstance, PSTR szCmdLine, int iCmdShow)
|
6 | {
|
7 |
|
8 |
|
9 | static TCHAR szAppName[] = TEXT ("hallo");
|
10 | HWND hwnd;
|
11 | MSG msg;
|
12 | WNDCLASS wndclass;
|
13 |
|
14 | wndclass.style = CS_HREDRAW | CS_VREDRAW ;
|
15 | wndclass.lpfnWndProc = WndProc;
|
16 | wndclass.cbClsExtra = 0;
|
17 | wndclass.cbWndExtra = 0;
|
18 | wndclass.hInstance = hInstance;
|
19 | wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION); // lädt ein Icon für das Programm
|
20 | wndclass.hCursor = LoadCursor (NULL, IDC_ARROW ); // lädt einen MausCursor für das Programm
|
21 | wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
|
22 | wndclass.lpszMenuName = NULL;
|
23 | wndclass.lpszClassName = szAppName;
|
24 |
|
25 | hwnd = CreateWindow (
|
26 | szAppName,
|
27 | TEXT ("Das"),
|
28 | WS_OVERLAPPEDWINDOW,
|
29 | CW_USEDEFAULT,
|
30 | CW_USEDEFAULT,
|
31 | CW_USEDEFAULT,
|
32 | CW_USEDEFAULT,
|
33 | NULL,
|
34 | NULL,
|
35 | hInstance,
|
36 | NULL
|
37 | );
|
38 |
|
39 | ShowWindow (hwnd, iCmdShow);
|
40 | UpdateWindow (hwnd);
|
41 |
|
42 | while (GetMessage (&msg, NULL, 0 , 0))
|
43 | {
|
44 | TranslateMessage( &msg);
|
45 | DispatchMessage (&msg);
|
46 | }
|
47 |
|
48 | return msg.wParam;
|
49 |
|
50 | }
|
51 |
|
52 |
|
53 | LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
54 | {
|
55 |
|
56 | HDC hdc;
|
57 | PAINTSTRUCT ps;
|
58 | RECT rect;
|
59 |
|
60 | switch(message)
|
61 | {
|
62 |
|
63 | }
|
64 |
|
65 |
|
66 | return DefWindowProc ( hwnd, message, wParam, lParam);
|
67 |
|
68 | }
|
OK. Das Programm macht nicht viel...
Bei compilieren bekomme ich folgenden Fehler:
C:\ccode\00002_createFenster>g++ messagebox.c -o messagebox
C:\DOCUME~1\Schepper\LOCALS~1\Temp/cc87wcu8.o:messagebox.c:(.text+0x67):
undefin
ed reference to `GetStockObject@4'
collect2: ld returned 1 exit status
Im Internet habe ich schon gesucht. Hier schreiben die, dass wäre ein
Linker fehler wegen irgendeiner LIB...
Was muss ich konkret eingeben, dass es compiliert werden
kann??????????????
Sonst habe ich immer mit MS Prdukte gearbeitet...
Vielen Dank für eure Unterstützung.