永发信息网

vs2013环境下,无法从"LRESULT(__stdcall*)转换为"WNDPROC""

答案:1  悬赏:0  手机版
解决时间 2021-02-05 02:05
  • 提问者网友:川水往事
  • 2021-02-04 07:56
刚开始学习VC++做界面,教材中第一个实例,就出错,该实例是编写一个窗口,代码如下:
#include
#include

LRESULT CALLBACK WinSunProc(
HWND hwnd,
UINT8 uMsg,
WPARAM wparam,
LPARAM lparam
);
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
WNDCLASS wndcls;
wndcls.cbClsExtra = 0;
wndcls.cbWndExtra = 0;
wndcls.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wndcls.hCursor = LoadCursor(NULL, IDC_CROSS);
wndcls.hIcon = LoadIcon(NULL, IDI_ERROR);
wndcls.hInstance = hInstance;
wndcls.lpfnWndProc = WinSunProc; //这一行是出错行
wndcls.lpszClassName = "anc";
wndcls.lpszMenuName = NULL;
wndcls.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wndcls);

HWND hwnd;
hwnd = CreateWindow("anc", "http://www.sunxin.org", WS_OVERLAPPED, 0, 0, 600, 400, NULL, NULL, hInstance, NULL);

ShowWindow(hwnd, SW_SHOWNORMAL);
UpdateWindow(hwnd);

MSG msg;
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;

}

说WinSunPro这个变量是LRESULT类型,无法转换为WNDPROC,我使用的开发环境是VS2013.
顺便吐槽一下:这些个写书的作者,脑袋是被驴踢了么?你要写书你就写详细一点,把新手刚开始经常会遇到的问题讲清楚并给出解决方案,照着源代码原封不动写下来还是这B样子,你说换做是你,特么本来满怀着热情买你的书来学习,结果第一个实例就怎么也解决不了,你特么是什么心情!孙鑫-<>无限鄙视↓
最佳答案
  • 五星知识达人网友:平生事
  • 2021-02-04 09:04
写个函数定义:
LRESULT CALLBACK WinSunProc(
HWND hwnd,
UINT8 uMsg,
WPARAM wparam,
LPARAM lparam
)
{
...
return TRUE;

}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯