Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2349545
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:08:10

小弟小个上个月买了一本清华出版社的书里面这样一个窗口程序但就是过不去请教原因..................急呀.!!!!!!!!!!!!!!!!
程序如下:
#include
 //windows.h头文件包含应用程序中所需的数据类型和数据结构的定义

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; //窗口函数声明

//以下的代码是初始化窗口类
int WINAPI WinMain (  HINSTANCE hInstance, //WinMain函数声明
HINSTANCE hPrevInstance,
LPSTR szCmdLine,
int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("Hello VC++6.0") ; //窗口类名
static TCHAR lpszTitle[] = TEXT ("My First Windows Program") ; //窗口标题名

    HWND         hwnd ;
    MSG           msg ;
      WNDCLASS    wndclass ;

         wndclass.style = CS_HREDRAW | CS_VREDRAW ; //窗口类风格
      wndclass.lpfnWndProc = WndProc ;              //窗口处理函数为WndProc
    wndclass.cbClsExtra = 0 ; //窗口类没有扩展
    wndclass.cbWndExtra = 0 ;                     //窗口类实例没有扩展
    wndclass.hInstance = hInstance ; // 当前实例句柄
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
//窗口的最小化图标为默认图标
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
//窗口采用箭头光标
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
         //窗口背景为白色
wndclass.lpszMenuName  = NULL ;     //窗口没有菜单
wndclass.lpszClassName = szAppName ;  //窗口类名

if (!RegisterClass (&wndclass))          //如果注册失败则发出警告声音
    {
MessageBox (NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
    }
     
hwnd = CreateWindow (szAppName,               // 窗口类名
TEXT ("The Hello Program"),  // 窗口实例的标题名
WS_OVERLAPPEDWINDOW, // 窗口的风格
                        CW_USEDEFAULT,       // 窗口的左上角x坐标为默认值
                        CW_USEDEFAULT,       // y轴坐标为默认值
                        CW_USEDEFAULT,       // 窗口的宽度为默认值
                        CW_USEDEFAULT,       // 窗口的宽度为默认值
                        NULL,                // 窗口没有父窗口
                        NULL,                // 窗口没有主菜单
                        hInstance,           //创建窗口应用程序的当前句柄
                        NULL) ;              // 创建参数指针为空
     
//显示窗口
ShowWindow (hwnd, iCmdShow) ;
//绘制用户区
UpdateWindow (hwnd) ;
//消息循环
while (GetMessage (&msg, NULL, 0, 0))
      {
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
      }
return msg.wParam ;//消息循环结束即程序终止时将信息返回系统
}
//窗口函数
LRESULT CALLBACK WndProc ( HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
HDC         hdc ;
PAINTSTRUCT ps ;
RECT        rect ;
     
switch (message)
    {
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;
DrawText ( hdc,
TEXT ("Hello VC++6.0! "),
15, &rect,DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hwnd, &ps) ;
return 0 ;
         
case WM_DESTROY:
PostQuitMessage (0) ;
//调用PostQuitMessage函数发出WM_QUIT消息
return 0 ;
    }
return DefWindowProc (hwnd, message, wParam, lParam) ;
}


运行结果:inking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/fff.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

求各位高手帮小弟一把


--------------------next---------------------
引用:  Win32   application   是基于WINDOWS平台的32位开发环境开发应用程序,SDK程序。
        Win32   Console   application   是基于DOS开发平台开发应用程序,不能使用与图形有关的函数,控制台程序。

        win32 application工程可以为一个WINDOWS应用以缺省方式建立一个项目。对于已经存在的项目非常有用,可以用ADD TO PROJECT/FILE命令将存在的文件加入到新的项目中。win32 console application工程没有WINDOWS图形接口,它使用标准的命令窗口,需要自己加入源文件。这就是出问题的原因:Win32 application是基于WINDOWS平台的32位开发环境开发应用程序,SDK程序。Win32 Console application是基于DOS开发平台开发应用程序,不能使用与图形有关的函数,控制台程序。

偶也刚开始学,要学会用MSDN......嘻嘻

--------------------next---------------------

阅读(1667) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~