| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 917 人关注过本帖
标题:请大家看看我这个程序错在哪里!
只看楼主 加入收藏
delldog
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-5-27
收藏
 问题点数:0 回复次数:3 
请大家看看我这个程序错在哪里!
#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK wintc(
  HWND hwnd,
  UINT uMsg,
  WPARAM wParam,
  LPARAM lParam
);

int WINAPI WinMain(
  HINSTANCE hInstance,
  HINSTANCE hPrevInstance,
  LPWSTR lpCmdLine,
  int nShowCmd
)
{
    WNDCLASS wc;
    wc.cbClsExtra=0;
    wc.cbWndExtra=0;
    wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背景颜色
    wc.hCursor=LoadCursor(NULL,IDC_CROSS);//光标
    wc.hInstance=hInstance;//实例号
    wc.hIcon=LoadCursor(NULL,IDI_ERROR);//图标
    wc.lpszMenuName=NULL;
    wc.lpszClassName=(LPCTSTR)"TQB";
    wc.lpfnWndProc=wintc;
    wc.style=CS_HREDRAW | CS_VREDRAW;
    RegisterClass(&wc);//注册一个窗口
    //=======创建一个窗口==============//
    HWND hwnd;
    hwnd=CreateWindow((LPCWSTR)"TQB",(LPCWSTR)"haha",WS_OVERLAPPEDWINDOW,0,0,600,500,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 wintc(
  HWND hwnd,
  UINT uMsg,
  WPARAM wParam,
  LPARAM lParam
)
{
    switch (uMsg)
    {
    case WM_CHAR:
        char a[20];
        sprintf(a,"char is %d",wParam);
        MessageBox(hwnd,(LPCWSTR)a,(LPCWSTR)"haha",0);
        break;
    case WM_LBUTTONDOWN:
        break;
    case WM_PAINT:
        break;
    case WM_CLOSE:
        break;
    case WM_DESTROY:
        break;
    default:
        return DefWindowProc(hwnd,uMsg,wParam,lParam);
     }


return 0;
}
小弟初学VC,看了书后自己练习,但是在写后编译就是通过不,我用的是VS2005
出错原因:

>------ 已启动生成: 项目: lession1, 配置: Debug Win32 ------
1>正在编译...
1>winmain.cpp
1>d:\workspace\lession1\winmain.cpp(23) : error C2731: “WinMain”: 无法重载函数
1>        d:\workspace\lession1\winmain.cpp(17) : 参见“WinMain”的声明
1>生成日志保存在“file://d:\workspace\lession1\lession1\Debug\BuildLog.htm”
1>lession1 - 1 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========
各位兄弟姐妹,那个告诉我一下,为什么WinMain会无法重载?
搜索更多相关主题的帖子: windows 程序 hInstance BRUSH int 
2008-05-27 12:37
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK wintc(
  HWND hwnd,
  UINT uMsg,
  WPARAM wParam,
  LPARAM lParam
);

int WINAPI WinMain(
  HINSTANCE hInstance,  // handle to current instance
  HINSTANCE hPrevInstance,  // handle to previous instance
  LPSTR lpCmdLine,      // pointer to command line
  int nCmdShow          // show state of window
)
{
        WNDCLASS wc;
        wc.cbClsExtra=0;
        wc.cbWndExtra=0;
        wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背景颜色
    wc.hCursor=LoadCursor(NULL,IDC_CROSS);//光标
        wc.hInstance=hInstance;//实例号
        wc.hIcon=LoadCursor(NULL,IDI_ERROR);//图标
    wc.lpszMenuName=NULL;
        wc.lpszClassName=(LPCTSTR)"TQB";
        wc.lpfnWndProc=wintc;
        wc.style=CS_HREDRAW | CS_VREDRAW;
        RegisterClass(&wc);//注册一个窗口
        //=======创建一个窗口==============//
        HWND hwnd;
        hwnd=CreateWindow("TQB","haha",WS_OVERLAPPEDWINDOW,0,0,600,500,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 wintc(
  HWND hwnd,
  UINT uMsg,
  WPARAM wParam,
  LPARAM lParam
)
{
        switch (uMsg)
        {
        case WM_CHAR:
                char a[20];
                sprintf(a,"char is %d",wParam);
                MessageBox(hwnd,a,"haha",0);
                break;
        case WM_LBUTTONDOWN:
                break;
        case WM_PAINT:
                break;
        case WM_CLOSE:
                break;
        case WM_DESTROY:
                break;
        default:
                return DefWindowProc(hwnd,uMsg,wParam,lParam);
     }


return DefWindowProc(hwnd,uMsg,wParam,lParam);
}

学习需要安静。。海盗要重新来过。。
2008-05-27 13:01
delldog
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-5-27
收藏
得分:0 
楼上的兄弟,能告诉我我错误的原因是什么吗?谢谢!
2008-05-27 13:19
delldog
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-5-27
收藏
得分:0 
各位,现在出现新错误,请帮忙看看
我实在比较困惑,难道是我的VS2005的问题还是怎么的,2楼的兄弟给的程序在VC6中能很好的运行,但是我弄到VS2005后,就出现问题了,现在出现新问题,请帮我看看,谢谢!
#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK wintc(
  HWND hwnd,
  UINT uMsg,
  WPARAM wParam,
  LPARAM lParam
);

int WINAPI WinMain(
  HINSTANCE hInstance,  // handle to current instance
  HINSTANCE hPrevInstance,  // handle to previous instance
  LPSTR lpCmdLine,      // pointer to command line
  int nCmdShow          // show state of window
)
{
        WNDCLASS wc;
        wc.cbClsExtra=0;
        wc.cbWndExtra=0;
        wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背景颜色
    wc.hCursor=LoadCursor(NULL,IDC_CROSS);//光标
        wc.hInstance=hInstance;//实例号
        wc.hIcon=LoadCursor(NULL,IDI_ERROR);//图标
    wc.lpszMenuName=NULL;
        wc.lpszClassName=(LPCTSTR)"TQB";
        wc.lpfnWndProc=wintc;
        wc.style=CS_HREDRAW | CS_VREDRAW;
        RegisterClass(&wc);//注册一个窗口
        //=======创建一个窗口==============//
        HWND hwnd;
        hwnd=CreateWindow((LPCWSTR)"TQB",(LPCWSTR)"haha",WS_OVERLAPPEDWINDOW,0,0,600,500,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 wintc(
  HWND hwnd,
  UINT uMsg,
  WPARAM wParam,
  LPARAM lParam
)
{
        switch (uMsg)
        {
        case WM_CHAR:
                char a[20];
                sprintf(a,"char is %d",wParam);
                MessageBox(hwnd,(LPCWSTR)a,(LPCWSTR)"haha",0);
                break;
        case WM_LBUTTONDOWN:
                break;
        case WM_PAINT:
                break;
        case WM_CLOSE:
                break;
        case WM_DESTROY:
                break;
        default:
                return DefWindowProc(hwnd,uMsg,wParam,lParam);
     }


return DefWindowProc(hwnd,uMsg,wParam,lParam);
}

1>------ 已启动生成: 项目: lession1, 配置: Debug Win32 ------
1>正在链接...
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用
1>D:\workspace\lession1\Debug\lession1.exe : fatal error LNK1120: 1 个无法解析的外部命令
1>生成日志保存在“file://d:\workspace\lession1\lession1\Debug\BuildLog.htm”
1>lession1 - 2 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========
2008-05-27 13:27
快速回复:请大家看看我这个程序错在哪里!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017152 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved