| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 447 人关注过本帖
标题:VC++6.0下的Windows编程这个程序为什么运行不了呢?
只看楼主 加入收藏
Seven丶原罪
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-4-9
收藏
 问题点数:0 回复次数:1 
VC++6.0下的Windows编程这个程序为什么运行不了呢?
//HellApi.cpp
#include<windows.h>
#pragma comment (lib, "winmm.lib") playsound
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int   WINAPI   WinMain (HINSTANCE hInstance,
                        HINSTANCE hPrevInstance,
                        PSTR szCmdLine,
                        int iCmdShow)
{
     static TCHAR szAppName[] = TEXT ("HelloWin") ;
     HWND         hwnd ;
     MSG          msg ;
     WNDCLASS     wndclass ;      
     //wndclass是本程序的窗口类,下面各赋值语句指定本程序窗口类的相关特征值,
     //如窗口的类型、处理窗口事件的窗口函数、窗口的光标等。
     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;    //窗口类型
     wndclass.lpfnWndProc  = WndProc ;        //窗口函数,本窗口发生的事件由它处理
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra   = 0 ;
     wndclass.hInstance     = hInstance ;    //程序句柄,本窗口属该程序,其值由Windows定义
     wndclass.hIcon        = LoadIcon (NULL, IDI_APPLICATION) ;  //应用程序图标
     wndclass.hCursor      = LoadCursor (NULL, IDC_ARROW) ;        //窗口光标
     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; //白色背景
     wndclass.lpszMenuName = NULL ;
     wndclass.lpszClassName = szAppName ;                //本窗口类的名字

     RegisterClass (&wndclass);                            //注册窗口
    //一个窗口被定义后,只有用RegisterClass登记之后才能应用。下面的CreateWindow
    //命令将用上面登记的wndclass窗口类建立一个窗口,并用hwnd窗口句柄标识
    //该窗口,该句柄可被程序的其它语句所引用
     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 ) ;        //显示窗口,hwnd代表上面建立的窗口
    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_CREATE:
          return 0 ;
     case WM_PAINT:
          hdc = BeginPaint (hwnd, &ps) ;         
          GetClientRect (hwnd, &rect) ;         
          DrawText (hdc, "Hello, Windows API ", -1, &rect,DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
          EndPaint (hwnd, &ps) ;
          return 0 ;         
     case WM_DESTROY:
          PostQuitMessage (0) ;
          return 0 ;
     }
     return DefWindowProc (hwnd, message, wParam, lParam) ;
}

最后会提示LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/HellApi.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
知道可以在工程-设置-连接里将console改为windows但是另外编写一个windows程序还要再改一遍。
为什么要这么改呢?有办法可以以后都不用改吗?
搜索更多相关主题的帖子: 编程 Windows comment 
2012-04-09 20:07
程序员啾啾
Rank: 2
等 级:论坛游民
帖 子:8
专家分:15
注 册:2012-3-4
收藏
得分:0 
你建工程的时候选的是什么格式的工程?应该选win32appalication
2012-05-03 08:58
快速回复:VC++6.0下的Windows编程这个程序为什么运行不了呢?
数据加载中...
 
   



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

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