我正在尝试编译包含此WinProc函数的代码时遇到问题,该函数用于处理来自我们程序的消息 . 例如,如果通过Windows收到WM_DESTROY消息,我希望它调用PostQuitMessage(0)来通知Windows该应用程序已发出退出请求 . 这将导致WM_QUIT消息导致WinMain退出 .
我几周只学习了C,没有经验或知识来解决这个问题,并且感谢任何帮助 . 我环顾四周,但到目前为止我找不到任何解决方案 . 我对此很陌生,所以我可能错过了一些非常明显的东西 .
LRESULT WINAPI WinProc (hWnd, msg, UNIT msg, WPARAM wParam, LPARAM lParam )
{
switch( msg )
{
case WM_DESTROY;
// Tell windows to kill the program
PostQuitMessage(0);
return 0;
}
return DefWindowProc (hWnd, msg, wParam, lParam );
}
以下是我遇到的代码所遇到的错误 .
错误:'LRESULT WinProc'重新声明为不同类型的符号错误:先前声明'LRESULT WinProc(HWND __ *,UINT,WPARAM,LPARAM)'错误:'hWnd'未在此范围内声明错误:'msg'未声明在此范围内错误:未在此范围内声明“UNIT”
任何帮助将不胜感激 .
谢谢
3 回答
尝试使用回调调用约定而不是winapi
https://msdn.microsoft.com/en-us/library/windows/desktop/ms633570(v=vs.85).aspx
还要注意在switch语句中使用“:”而不是“;”,还要在句柄和消息参数之前指定一个类型
在函数声明中
你忘了为前两个参数hWnd和msg设置类型说明符
必须有
在放置分号时,标签后面还必须跟冒号
这应该是函数声明 . 你的案子有一个“;”分号而不是“:”冒号 .
除此之外,我没有看到任何问题 . 试试这个: