Advertisement
Chachii

WinMain() Error

Dec 16th, 2014
503
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.16 KB | None | 0 0
  1. #include <windows.h>
  2. #include <wchar.h>
  3. #include "Game.h"
  4. #include "Resource.h"
  5.  
  6. static KeyboardServer kServ;
  7.  
  8. LRESULT WINAPI MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
  9. {
  10.     switch(msg)
  11.     {
  12.     case WM_DESTROY:
  13.         PostQuitMessage(0);
  14.         return 0;
  15.     case WM_KEYDOWN:
  16.         switch(wParam)
  17.         {
  18.         case VK_UP:
  19.             kServ.OnUpPressed();
  20.             break;
  21.         case VK_DOWN:
  22.             kServ.OnDownPressed();
  23.             break;
  24.         case VK_LEFT:
  25.             kServ.OnLeftPressed();
  26.             break;
  27.         case VK_RIGHT:
  28.             kServ.OnRightPressed();
  29.             break;
  30.         case VK_SPACE:
  31.             kServ.OnSpacePressed();
  32.             break;
  33.         }
  34.     case WM_KEYUP:
  35.         switch(wParam)
  36.         {
  37.         case VK_UP:
  38.             kServ.OnUpPressed();
  39.             break;
  40.         case VK_DOWN:
  41.             kServ.OnDownPressed();
  42.             break;
  43.         case VK_LEFT:
  44.             kServ.OnLeftPressed();
  45.             break;
  46.         case VK_RIGHT:
  47.             kServ.OnRightPressed();
  48.             break;
  49.         case VK_SPACE:
  50.             kServ.OnSpacePressed();
  51.             break;
  52.         }
  53.     }
  54.     return DefWindowProc(hWnd, msg, wParam, lParam);
  55. }
  56.  
  57. int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, INT, LPWSTR)
  58. {
  59.     WNDCLASSEX wc =
  60.     {
  61.         sizeof(WNDCLASSEX),
  62.         CS_CLASSDC,
  63.         MsgProc,
  64.         0,
  65.         0,
  66.         GetModuleHandle(NULL),
  67.         NULL,
  68.         NULL,
  69.         NULL,
  70.         NULL,
  71.         L"Framework",
  72.         NULL
  73.     };
  74.  
  75.     wc.hIconSm = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_APPICON16), IMAGE_ICON, 16, 16, 0);
  76.     wc.hIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_APPICON16), IMAGE_ICON, 32, 32, 0);
  77.     RegisterClassEx(&wc);
  78.  
  79.     RECT wr;
  80.     wr.left = 100;
  81.     wr.right = 980 + wr.left;
  82.     wr.top = 100;
  83.     wr.bottom = 620 + wr.top;
  84.  
  85.     AdjustWindowRect(&wr, WS_OVERLAPPEDWINDOW, FALSE);
  86.     HWND hWnd = CreateWindowW
  87.         (
  88.         L"Framework",
  89.         L"Hitler's Revenge: Escape From Hell",
  90.         WS_OVERLAPPEDWINDOW,
  91.         wr.left,
  92.         wr.top,
  93.         wr.right-wr.left,
  94.         wr.bottom-wr.top,
  95.         NULL,
  96.         NULL,
  97.         wc.hInstance,
  98.         NULL
  99.         );
  100.  
  101.     ShowWindow (hWnd, SW_SHOWDEFAULT);
  102.     UpdateWindow(hWnd);
  103.  
  104.     Game theGame(hWnd, kServ);
  105.  
  106.     MSG msg;
  107.     ZeroMemory(&msg, sizeof(msg));
  108.     while(msg.message != WM_QUIT)
  109.     {
  110.         if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
  111.         {
  112.             TranslateMessage(&msg);
  113.             DispatchMessage(&msg);
  114.         }
  115.         else
  116.         {
  117.             theGame.Go();
  118.         }
  119.     }
  120.     UnregisterClass(L"Framework", wc.hInstance);
  121.     return 0;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement