Hallo Forum,
ich benutze Visual C++ 2008 von Microsoft. Trotzdem weiß ich nicht so genau ob meine Frage in dieses Forum gehört oder ins C++ Forum. Ich schieß einfach mal los und man möge mich bei Irtum korrigieren.
Ich habe angefangen Spieleprogrammierung zu lernen und versuche gerade ersteinmal die groben Grundlagen der Windowsprogrammierung für die Gameshell zu verstehen. Dabei ergibt sich folgendes Problem. Der folgende Quelltext ist aus dem Buch übernommen funktioniert aber nicht :suspekt:
Dies funktioniert merkwürdigerweise nur dann wenn ich kurz vor Schluss "Game_Shutdown();" auskommentiere. Ansonsten folgt die Fehlermeldung:
main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""void __cdecl Game_Shutdown(void)" (?Game_Shutdown@@YAXXZ)" in Funktion "_WinMain@16".
C:\Dokumente und Einstellungen\Rene\Desktop\Programme\Kapitel_01_GameShell\Debug\Kapitel_01_GameShell.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
Wäre dankbar wenn es sich mal jemand anschauen könnte und vorschläge macht.
Gruß Rene42
ich benutze Visual C++ 2008 von Microsoft. Trotzdem weiß ich nicht so genau ob meine Frage in dieses Forum gehört oder ins C++ Forum. Ich schieß einfach mal los und man möge mich bei Irtum korrigieren.
Ich habe angefangen Spieleprogrammierung zu lernen und versuche gerade ersteinmal die groben Grundlagen der Windowsprogrammierung für die Gameshell zu verstehen. Dabei ergibt sich folgendes Problem. Der folgende Quelltext ist aus dem Buch übernommen funktioniert aber nicht :suspekt:
Code:
// Wichtige GAME-Funktionsprototypen
//-----------------------------------------------------------
void Game_Shutdown(void);
void Game_Init(void);
void Game_Main(void);
//-----------------------------------------------------------
// Funktionsdefinitionen
//-----------------------------------------------------------
LRESULT CALLBACK WindowProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
{
PAINTSTRUCT ps;
HDC hdc;
// Nachrichtenverarbeitung
switch(msg)
{
case WM_CREATE:
{
return(0);
}
break;
case WM_PAINT:
{
hdc = BeginPaint(hwnd,&ps);
EndPaint(hwnd,&ps);
return(0);
}
break;
case WM_DESTROY:
{
PostQuitMessage(0);
return(0);
}
break;
default:
break;
}
return (DefWindowProc(hwnd, msg, wparam, lparam));
}
/////////////////////////////////////////////////////////////
int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hprevinstance,LPSTR lpcmdline,int ncmdshow)
{
WNDCLASSEX winclass;
HWND hwnd;
MSG msg;
// Fenstereigenschaften festlegen:
winclass.cbSize = sizeof(WNDCLASSEX);
winclass.style = CS_HREDRAW | CS_VREDRAW;
winclass.lpfnWndProc = WindowProc;
winclass.cbClsExtra = 0;
winclass.cbWndExtra = 0;
winclass.hInstance = hinstance;
winclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
winclass.hCursor = LoadCursor(NULL, IDC_ARROW);
winclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
winclass.lpszMenuName = NULL;
winclass.lpszClassName = WINDOW_CLASS_NAME;
winclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
hinstance_app = hinstance;
if(!RegisterClassEx(&winclass))
return(0);
if(!(hwnd = CreateWindowEx(NULL,WINDOW_CLASS_NAME,"My Game Shell",WS_OVERLAPPEDWINDOW | WS_VISIBLE,0,0,800,600,NULL,NULL,hinstance,NULL)))
return(0);
main_window_handle = hwnd;
Game_Init();
while(TRUE) // Nachrichtenweiterleitung
{
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
if(msg.message == WM_QUIT)
break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
Game_Main();
}
Game_Shutdown();
return(msg.wParam);
}
Dies funktioniert merkwürdigerweise nur dann wenn ich kurz vor Schluss "Game_Shutdown();" auskommentiere. Ansonsten folgt die Fehlermeldung:
main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""void __cdecl Game_Shutdown(void)" (?Game_Shutdown@@YAXXZ)" in Funktion "_WinMain@16".
C:\Dokumente und Einstellungen\Rene\Desktop\Programme\Kapitel_01_GameShell\Debug\Kapitel_01_GameShell.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
Wäre dankbar wenn es sich mal jemand anschauen könnte und vorschläge macht.
Gruß Rene42