预期的标识符还是什么? 我在DeV C++中发布了下面的代码,这是一个更新版本,奥威尔版本。它给了我一些错误,我希望你能帮助我:)大多数错误已经被我纠正了,但有些我就是解释不了。我只是想做一个简单的微软应用程序
编译器给我这个错误: 第53行[错误]应为“{”标记之前的标识符或“(” 守则:预期的标识符还是什么? 我在DeV C++中发布了下面的代码,这是一个更新版本,奥威尔版本。它给了我一些错误,我希望你能帮助我:)大多数错误已经被我纠正了,但有些我就是解释不了。我只是想做一个简单的微软应用程序,c,windows,C,Windows,编译器给我这个错误: 第53行[错误]应为“{”标记之前的标识符或“(” 守则: # include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); int WinMain (HINSTANCE hinstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName
# include <windows.h>
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回调WndProc(HWND、UINT、WPARAM、LPARAM);
int WinMain(HINSTANCE HINSTANCE、HINSTANCE hPrevInstance、PSTR szCmdLine、int iCmdShow)
{
静态TCHAR szAppName[]=文本(“HelloWin”);
HWND-HWND;
味精;
WNDCLASS WNDCLASS;
wndclass.style=CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=LoadIcon(空,IDI_应用程序);
wndclass.hCursor=LoadCursor(空,IDC_箭头);
wndclass.hbrBackground=(HBRUSH)GetStockObject(白色画笔);
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=szAppName;
if(!RegisterClass(&wndclass))
{
MessageBox(空,文本(“xxcxcx”),szAppName,MB_ICONERROR);
返回(0);
}
hwnd=CreateWindow(szAppName,
文本(“FRF”),
WS_重叠窗口,
CW_使用默认值,
CW_使用默认值,
CW_使用默认值,
CW_使用默认值,
无效的
无效的
hinstance,
无效);
显示窗口(hwnd、iCmdShow);
更新窗口(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
翻译信息(&msg);
发送消息(&msg);
}/*结束时*/
返回(msg.wParam);
}/*结束WinMain()*/
LRESULT回调WndProc(HWND、UINT消息、WPARAM WPARAM、LPARAM LPARAM);
{(“**这是第53行**”)
HDC-HDC;
PAINTSTRUCT-ps;
RECT-RECT;
开关(信息)
{
案例WM_创建:
播放声音(“frzzzzz.wav”),空,SND|U文件名| SND-ASIAC
返回(0);
案例WM_油漆:
hdc=开始喷漆(hwnd和ps);
GetClientRect(hwnd和rect);
DrawText(hdc,TEXT(“hzhzhzhzhz!”),-1,&,DT|u单线| DT-CENTER | DT|VCENT;
终点(hwnd和ps);
返回(0);
案例WMU破坏;
PostQuitMessage(0);
返回(0);
}
返回(DefWindowProc(hwnd、message、wParam、lParam));
}
新年快乐,代码的其他部分都好吗?删除分号
;
位于:
LRESULT CALLBACK WndProc(HWND, UINT message, WPARAM wParam, LPARAM lparam);
为清晰起见进行了编辑
在开头有一个声明,如下所示
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); // <-- OK
LRESULT CALLBACK WndProc(HWND、UINT、WPARAM、LPARAM);//在回调函数中,调用PlaySound和DrawText函数时,缺少“()”和“)”。函数参数应放在()。
顺便说一下,当消息为WM_PAINT时,如果您想调用EndPaint而不是EndPoint。哪一行是第53行?编辑器中有行号。您至少可以在代码中添加注释以指示错误发生的位置。根据该行以及{是问题所在,应该不难发现。很抱歉,我没有推出53行。现在已经更正。请看DrawText(hdc,…,-1,&,DT_……)
。该行包含三个不同的错误。如果我这样做,我将进入第52行:[错误]参数名omitted@Janac哦,省略参数名是合法C++,你把这个问题标记为。无论如何,既然我们已经建立了C,只要给它起个名字。我不知道C++是完全不同的语言。它是C是的。@ JANAC听起来很粗糙:学习编程。把随机源代码粘贴到井手上。不会让你有任何进展的。李为你的问题提供了正确的答案。你应该接受它。现在已经解决了,但是第53行怎么办?
LRESULT CALLBACK WndProc(HWND, UINT message, WPARAM wParam, LPARAM lparam); // <--Error. Delete ';'
{ ("**this is line 53**")
:
}