游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3944|回复: 5

windows下创建窗口的程序,哪里出错了?

[复制链接]

3

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2012-3-15 19:58:00 | 显示全部楼层 |阅读模式
我是按照孙鑫视频第一课写的,基本照抄的,但是我的程序调试失败,以下是代码:

#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)

2

主题

15

帖子

108

积分

注册会员

Rank: 2

积分
108
发表于 2012-3-15 21:52:00 | 显示全部楼层

Re:windows下创建窗口的程序,哪里出错了?

孙鑫的是MFC,我没用过MFC
我猜大概是MFC已经帮你写好了的,你不必再自己写WinMain主函数了

2

主题

15

帖子

108

积分

注册会员

Rank: 2

积分
108
发表于 2012-3-15 21:52:00 | 显示全部楼层

Re:windows下创建窗口的程序,哪里出错了?

万恶的验证码

12

主题

90

帖子

466

积分

中级会员

Rank: 3Rank: 3

积分
466
发表于 2012-3-16 13:32:00 | 显示全部楼层

Re:windows下创建窗口的程序,哪里出错了?

大哥,你工程类型检错了

0

主题

41

帖子

50

积分

注册会员

Rank: 2

积分
50
发表于 2012-3-20 14:04:00 | 显示全部楼层

Re:windows下创建窗口的程序,哪里出错了?

顶一下~~~~~~~

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2012-4-1 17:08:00 | 显示全部楼层

Re:windows下创建窗口的程序,哪里出错了?

你的工程属性默认是ansi的吧
要么把工程属性改成unicode
要么把LPWSTR lpCmdLine改成LPSTR lpCmdLine
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-28 17:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表