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 aMfG 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