2015-02-08 38 views
-5

我已經嘗試了多次,並從視頻複製此代碼幾乎相同有些是此刻有點不同,因爲我已經愚弄周圍沒有得到新的錯誤,但我一直試圖自己解決這個問題幾天。無論如何,這是c2447失蹤{(舊樣式格式?)似乎是一個簡單的解決方案後,谷歌搜索,但我卡住,越來越沮喪。也應該是一個win32窗口c2447錯誤學習創建一個win32窗口

#include <windows.h> 

LRESULT CALLBACK 
MainWindowCallback(HWND Window 
UINT Message, 
           WPARAM WParam, 
           LPARAM LParam); 
{ 
      LRESULT Result = 0; 

      switch(Message) 
      { 
       case WM_SIZE: 
       { 
       OutputDebugStringA("WM_SIZE\n") 
       } break; 

       case WM_DESTROY: 
       { 
       OutputDebugStringA("WM_DESTROY\n") 
       } break; 

       case WM_ClOSE: 
       { 
       OutputDebugStringA("WM_CLOSE\n") 
       } break; 

       case WM_ACTIVATEAPP: 
       { 
       OutputDebugStringA("WM_ACTIVATEAPP\n") 
       } break; 

       default: 
       { 
       Result = ; 
       } break; 
      } 
      return(Result); 
} 

int CALLBACK 
    WinMain(HINSTANCE Instance, 
       HINSTANCE PrevInstance, 
       LPSTR CommandLine, 
       int ShowCode) 



{ 
    WNDCLASS WindowClass = {}; 

WindowClass.style = CS_OWNDC|CS_HREDRAW|CS_VREDRAW; 
WindowClass.lpfnWndProc = MainWindowCallback; 
WindowClass.hInstance = Instance ; 
    // WindowClass.hIcon; 
WindowClass.lpszClassName = "RavelWindowClass"; 

    if(RegisterClass(&WindowClass)); 
{ 
    HWND WindowHandle = 
     CreateWindowEx(0, 
            WindowClass.lpszClassName, 
            "Ravel", 
            WS_OVERLAPPEDWINDOW|WS_VISIBLE, 
            CW_USEDEFAULT, 
            CW_USEDEFAULT, 
            CW_USEDEFAULT, 
            CW_USEDEFAULT, 
            0, 
            0, 
            Instance, 
            0); 

       if(WindowHandle) 
       { 
        for(;;) 
        { 
         MSG Message; 
         BOOL MessageResult = GetMessage(&Message, 0, 0, 0); 
         if(MessageResult > 0) 
         { 
          TranslateMessage(&Message); 
          DispatchMessage(&Message); 

         } 
         else 
         { 
          break; 
         } 
        } 
       } 
} 

    return(0); 
} 

ps是不是馬虎在我的作家我有麻煩的網站。 thx

+0

'HWND Window'後的逗號過少。 – molbdnilo 2015-02-08 10:43:18

+0

這是什麼結果=;' – Cyclonecode 2015-02-08 10:43:39

+0

逗號實際上是在我的代碼中,這很奇怪。 我填寫結果,我仍然得到C2447。 – 2015-02-08 10:48:38

回答

0

您的代碼有幾個錯誤。首先編譯器錯誤c2447告訴我們:

編譯器在全局範圍遇到意外的左括號。在大多數情況下,在 中,這是由錯誤形成的函數頭, 錯位聲明或雜散分號引起的。若要解決此問題, 驗證打開的大括號是否遵循正確形成的函數標頭 ,並且前面沒有聲明或雜散分號。

因爲分號結束你的函數頭您收到此錯誤,請注意,您還缺少兩個第一參數之間的,

LRESULT CALLBACK 
MainWindowCallback(HWND Window <-- missing comma   
        UINT Message, 
        WPARAM WParam, 
        LPARAM LParam); <-- terminates the function header 

注意,C++是大小寫敏感的,因此WM_ClOSE與您應該使用的WM_CLOSE不一樣。換句話說,您嘗試使用未定義的常量,並且需要更改常量名稱:

case WM_ClOSE: <-- this is an undefined constant, should be WM_CLOSE 
{ 
    OutputDebugStringA("WM_CLOSE\n") 
} break;