000
09.01.2007, 13:37 Uhr
crypt
|
Hallo erstmal!
Ich bin Neuling auf dem Gebiet C++ und kämpfe mich grade durch eines der vielen Tutorials (3D-Spiele mit c++ in 21 Tagen). Einige Probleme und Fehlermeldungen konnte ich bereits (mehr oder weniger) selbstständig auflösen, aber die letzten 3 verstehe ich nicht ganz. Ich habe schon einiges darüber recherchiert und gelesen, aber dabei keine brauchbare bzw. verständliche Lösung gefunden. Ich hoffe, hier kann mir jemand weiterhelfen!
Hier der Quellcode:
C++: |
//------------------------------------- // 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);
//------------------------------------- //Funtionsdefinitionen //-------------------------------------
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) { //Mit ESC kann die Anwendung verlassen werden if(KEYDOWN(VK_ESCAPE)) SendMessage(main_window_handle,WM_CLOSE,0,0); }
////////////////////////////////////////////
void Game_Shutdown(void) {}
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Beim Kompilieren erhalte ich nun 2 Fehlermeldungen und 1 Warnung:
main.cpp(100) : error C2440: '=': 'const char [18]' kann nicht in 'LPCWSTR' konvertiert werden. Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
main.cpp(117) : error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [18]' in 'LPCWSTR' nicht möglich. Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
main.cpp(140) : warning C4244: 'return': Konvertierung von 'WPARAM' in 'int', möglicher Datenverlust
Wäre nett, wenn mir damit jemand ebend ein klein wenig behilflich sein könnte und sich das mal anschaut.
Danke schonmal! :> |