请帮我看下,为什么我的windows下创建的窗口程序失败

khnum1 2012-03-15 07:58:38
我是按照孙鑫视频第一课写的,基本照抄的,但是我的程序调试失败,以下是代码:

#include <windows.h>
#include <stdio.h>
LRESULT CALLBACK WinSunProc(

HWND hwnd,

UINT uMsg,

WPARAM wParam,

LPARAM lParam

);

int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPWSTR lpCmdLine,
int nShowCmd
)
{
WNDCLASS wndcls;
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wndcls.hCursor=LoadCursor(NULL,IDC_ARROW);
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=WinSunProc;
wndcls.lpszClassName="youxi2012";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wndcls);

HWND hwnd;
hwnd=CreateWindow("youxi2012","feijiyouxi",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,800,600,NULL,NULL,hInstance,NULL);

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

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

LRESULT CALLBACK WinSunProc(

HWND hwnd,

UINT uMsg,

WPARAM wParam,

LPARAM lParam

)
{
switch(uMsg)
{
case WM_CHAR:
char szChar[20];
sprintf(szChar,"char is d%",wParam);
MessageBox(hwnd,szChar,"feijiyouxi",0);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,"chuji","feijiyouxi",0);
HDC hdc;
hdc=GetDC(hwnd);
TextOut(hdc,0,50,"·É»úÉè¼ÆÆð²½",strlen("·É»úÉè¼ÆÆð²½"));
ReleaseDC(hwnd,hdc);
break;
case WM_PAINT:
HDC hDC;
PAINTSTRUCT ps;
hDC=BeginPaint(hwnd,&ps);
TextOut(hDC,0,0,"·É»úÓÎÏ·",strlen("·É»úÓÎÏ·"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"ÊÇ·ñÕæµÄ½áÊø","feijiyouxi",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}

}
上面哪里有问题啊?
调试结果:
--------------------Configuration: winmain - Win32 Debug--------------------
Compiling...
winmain.cpp
G:\winmain\winmain.cpp(21) : error C2731: 'WinMain' : function cannot be overloaded
G:\winmain\winmain.cpp(15) : see declaration of 'WinMain'
Ö´ÐÐ cl.exe ʱ³ö´í.

winmain.obj - 1 error(s), 0 warning(s)
...全文
148 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
khnum1 2012-03-15
  • 打赏
  • 举报
回复
谢谢各位,问题找到了。参数又怪又多,呵呵,大意了
lys86_1205 2012-03-15
  • 打赏
  • 举报
回复

WinMain函数的第三个参数类型错误,应该是LPTSTR lpCmdLine ,你换一下估计就可以
zhao1zhong6 2012-03-15
  • 打赏
  • 举报
回复
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
PSTR lpCmdLine,int nShowCmd )
W170532934 2012-03-15
  • 打赏
  • 举报
回复
你定义了LPWSTR lpCmdLine,是不是应该这样LPSTR lpCmdLine,你重载了这函数,仔细瞧瞧
W170532934 2012-03-15
  • 打赏
  • 举报
回复
你写了这个参数LPWSTR lpCmdLine,应该是LPSTR lpCmdLine吧。是你重载了这个函数,仔细瞧瞧

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧