预期的标识符还是什么?

我在下面的DEV C ++中发布了类型代码,这是一个更新版本,Orwell。 它给了我一些错误,我希望你帮助我:)他们已经修复了大多数错误,但其中一些我无法解释。 我只是想做简单的MS应用程序。

编译器给我这个错误:

LINE 53 [错误]预期标识符或’(”””之前的标记

代码:

# include  LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); int WinMain (HINSTANCE hinstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT ("HelloWin"); HWND hwnd; MSG msg; WNDCLASS wndclass; wndclass.style = CS_HREDRAW| CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hinstance; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor (NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName; if (!RegisterClass (&wndclass)) { MessageBox (NULL, TEXT ("XXCXCXCXCX"), szAppName, MB_ICONERROR); return (0); } hwnd = CreateWindow (szAppName, TEXT("FRFRFRFRF"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hinstance, NULL); ShowWindow (hwnd, iCmdShow); UpdateWindow (hwnd); while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (& msg); DispatchMessage (& msg); } /* END while*/ return (msg.wParam); } /* END WinMain () */ LRESULT CALLBACK WndProc(HWND, UINT message, WPARAM wParam, LPARAM lparam); { ("**this is line 53**") HDC hdc; PAINTSTRUCT ps; RECT rect; switch (message) { case WM_CREATE: PlaySound("FRFRFRZZZZZ.wav"), NULL, SND_FILENAME|SND-ASIAC return (0); case WM_PAINT: hdc = BeginPaint (hwnd, &ps); GetClientRect (hwnd, &rect); DrawText (hdc, TEXT ("HZHZHZHZ!"), -1, &, DT_SINGLELINE|DT-CENTER|DT_VCENT; EndPoint (hwnd, &ps); return (0); case WM_DESTROY; PostQuitMessage (0); return (0); } return (DefWindowProc (hwnd, message, wParam, lParam)); } 

祝新年快乐,剩下的代码还可以吗?

删除分号; 在:

 LRESULT CALLBACK WndProc(HWND, UINT message, WPARAM wParam, LPARAM lparam); 

编辑清晰。

您在开头有一个声明,如下所示

 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); // <-- OK 

以后你有实际的function

 LRESULT CALLBACK WndProc(HWND, UINT message, WPARAM wParam, LPARAM lparam); // <--Error. Delete ';' { ("**this is line 53**") : } 

在你的回调函数中,当你调用PlaySound和DrawText函数时,缺少’()’和’)’。函数参数应放在()中。 顺便说一句,当消息是WM_PAINT时,如果要调用EndPaint而不是EndPoint。