ICh hab im internet ein Quellcode mit tut gefunden und wollt damit ein bisschen rumprobiern aber der Quellcode bringt beim Compilieren ein Fehler.
Der Fehler:
[Linker error] undefined reference to `GetStockObject@4
Der Compiler 'Dev-C++4.9.8.0'
Der Quellcode:
Kann mir einer helfen
MFG NeXoN
Der Fehler:
[Linker error] undefined reference to `GetStockObject@4
Der Compiler 'Dev-C++4.9.8.0'
Der Quellcode:
Code:
/*
* Übung 1 zu Tutorial 2 "Ein eigenes Fenster"
*
* http://www.Loggy.de.st/
*
* Henno Buschmann (Loggy.mail@gmx.de)
*
* Aufgabe:
* Schreibe ein Programm, welches vor dem Beenden eine Nachricht mit Hilfe der
* MessageBox Funktion ausgibt. Die WinMain Funktion soll nicht geändert werden.
*/
#define STRICT
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
const char szAppName[] = "Ein eigenes Fenster";
/* Funktion: WinMain
*
* Einstiegspunkt eines Windows Programms. Erzeugt Fenster und ruft Nachrichten ab.
* Parameter:
* HINSTANCE hInstance : Programm ID; identifiziert die Programminstanz
* HINSTANCE hPrevInstance : Ist in Win32 immer Null
* PSTR szCmdLine : Commandozeilen Parameter, als C-String
* int iCmdShow : Speichert, wie das eventuelle Fenster angezeigt werden soll
* Rückgabe:
* int : Null für keinen Fehler
*/
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
MSG msg; /* Struktur speichert Nachrichten */
HWND hWnd; /* Handle auf unser Hauptfenster */
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW; /* Repaint bei Fenstergößenänderung */
wc.lpfnWndProc = WndProc; /* Nachrichtenbearbeitungs Funktion */
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance; /* Programm ID aus WinMain */
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wc.lpszClassName = szAppName; /* Klassenname (bei uns = Programmname) */
wc.lpszMenuName = NULL;
RegisterClass(&wc);
hWnd = CreateWindow( szAppName, /* Fenster erstellen */
szAppName,
WS_OVERLAPPEDWINDOW, /* Fensterstil */
CW_USEDEFAULT, /* X-Position */
CW_USEDEFAULT, /* Y-Position */
CW_USEDEFAULT, /* Breite */
CW_USEDEFAULT, /* Höhe */
NULL,
NULL,
hInstance, /* Programm ID */
NULL);
ShowWindow(hWnd, iCmdShow); /* Fenster anzeigen */
UpdateWindow(hWnd); /* Und ein Repaint */
while (GetMessage(&msg, NULL, 0, 0)) /* Nachrichten abrufen... */
{
TranslateMessage(&msg);
DispatchMessage(&msg); /* ... und bearbeiten */
}
return msg.wParam; /* Rückgabewert nicht vergessen */
}
/*
* Funktion WndProc
* Bearbeitet alle Nachrichten eines Fensters.
* Parameter:
* HWND hWnd : Handle für das Fenster
* UINT message : Welche Nachricht? Als Konstanten aus windows.h
* WPARAM wParam : Zusätzliche Informationen zu der Nachricht
* LPARAM lParam : Zusätzliche Informationen zu der Nachricht
*/
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) /* Welche Nachricht? */
{
case WM_DESTROY: /* Fenster wird zerstört */
{ /* Zeigt eine Nachricht */
MessageBox(hWnd, "Das Programm wird beendet", szAppName,
MB_ICONINFORMATION | MB_OK | MB_DEFBUTTON1);
PostQuitMessage(0); /* dann Programm mit Null beenden */
return 0;
}
}
return DefWindowProc(hWnd, message, wParam, lParam);/* Bearbeitet alle restlichen Nachrichten */
}
Kann mir einer helfen
MFG NeXoN