Hilfe bei folgendem Code
-
Habe folgende Fehlermeldungen beim compilieren. Es handelt sich um einen Code den ich aus einem Übungsbuch übernommen habe. Sollte aber eigentlich fehlerfrei sein.
Fehlermeldung:
--------------------Konfiguration: Der_erste_Versuch - Win32 Debug--------------------
Kompilierung läuft...
Gameshell.cpp
C:\Programme\Microsoft Visual Studio\MyProjects\Der_erste_Versuch\Gameshell.cpp(79) : error C2440: 'type cast' : 'unsigned int' kann nicht in 'struct tagWNDCLASSEXA' konvertiert werden
Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Ueberladungsaufloesung des Konstruktors ist mehrdeutig
C:\Programme\Microsoft Visual Studio\MyProjects\Der_erste_Versuch\Gameshell.cpp(131) : error C2065: 'vk_Code' : nichtdeklarierter Bezeichner
Fehler beim Ausführen von cl.exe.Gameshell.obj - 2 Fehler, 0 Warnung(en)
Code:
//--------------------------------------------------------- //DEFINES //------------------------------------------------------------ #define WINDOW_CLASS_NAME "Game Shell Window" #define WIN32_LEAN_AND_MEAN //-------------------------------------------------------- //INCLUDES //--------------------------------------------------------- #include <windows.h> //--------------------------------------------------------- //MACROS //--------------------------------------------------------- #define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_Code)&0x8000)?1:0) #define KEYUP(vk_code) ((GetAsyncKeyState(vk_Code)&0x8000)?0:1) //------------------------------------------------------------- //GLOBALS //------------------------------------------------------------- HWND main_window_handle = NULL; HINSTANCE hinstance_app = NULL; //------------------------------------------------------------ //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); } ////////////////////////////////////////////////////////////////////////////////// void Game_Init(void) {} ///////////////////////////////////////////////////////////////////////////////// void Game_Main(void) { // Mit Esc kann die Anwendung verlassen werden if(KEYDOWN(VK_ESCAPE)) SendMessage(main_window_handle, WM_CLOSE,0,0); } ////////////////////////////////////////////////////////////////////////////////// void Game_Shutdown(void) {}
Falls jemand ne Idee hat bin ich echt dankbar.
-
#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_Code)&0x8000)?1:0) #define KEYUP(vk_code) ((GetAsyncKeyState(vk_Code)&0x8000)?0:1)
vk_code != vk_Code !
An welcher Stelle tritt denn die 2. Fehlermeldung auf?
MfG Spacelord
-
Ok,schon passiert.
winclass.cbSize = sizeof(WNDCLASSEX) //kein Semikolon!
und:
int WINAPI WinMAin //kleines a
MfG Spacelord
-
Ich danke euch. Die Fehler sind jetzt verschwunden. Habe allerdings jetzt folgende Fehlermeldung beim linken:
--------------------Konfiguration: Gameshell - Win32 Debug--------------------
Linker-Vorgang läuft...
LIBCD.lib(crt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _main
Debug/Gameshell.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.Gameshell.exe - 2 Fehler, 0 Warnung(en)
Hat jemand noch dazu ne Idee?
-
Mr.Blond schrieb:
Ich danke euch.
Noch bin ich nur einer.Sobald ich völlig schizophren bin sage ich Bescheid
.
Dein main Fehler lässt auf den falschen Projekttyp schliessen.
Du brauchst ne Win32 Anwendung kein Konsolenprojekt.MfG Spacelord
-
So jetzt aber. Hattest recht gehabt. Ich Depp habe keine Win32 Anwendung ausgewählt. Danach hats geklappt. Arbeite heute zum ersten mal mit VISUAL C++.
Hatte vorher nur den Borland C++ Compiler benutzt. Ist schon ein bisschen was anderes.
MFG
Mr.Blond