CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

windows编程初级问题,请指教

楼主A_KID(A_KID)2001-10-08 20:45:12 在 C/C++ / C语言 提问

小弟近日开始学习WINDOWS的编程,首选当然是先写一个最简单的窗口啦。我按照书上的代码,一字一字的敲进电脑,COMPLIES时没问题,但BUILD时提示有错误。下面是照书上抄的代码,请各位大哥指点一二:)  
  #include   <windows.h>  
   
  LRESULT   CALLBACK   WindowFunc(HWND,UINT,WPARAM,LPARAM);  
   
  char   szWinName[]="MyWin";  
  int   WINAPI   WinMain(HINSTANCE   hThisInst,HINSTANCE   hPrevInst,LPSTR   lpszArgs,int   nWinMode)  
  {  
      HWND   hwnd;  
      MSG   msg;  
      WNDCLASSEX   wcl;  
   
      wcl.hInstance=hThisInst;  
      wcl.lpszClassName=szWinName;  
      wcl.lpfnWndProc=WindowFunc;  
      wcl.style=0;  
   
      wcl.cbSize=sizeof(WNDCLASSEX);  
   
      wcl.hIcon=LoadIcon(NULL,IDI_APPLICATION);  
      wcl.hIconSm=LoadIcon(NULL,IDI_WINLOGO);  
   
      wcl.hCursor=LoadCursor(NULL,IDC_CROSS);  
      wcl.lpszMenuName=NULL;  
      wcl.cbClsExtra=0;  
      wcl.cbWndExtra=0;  
   
      wcl.hbrBackground=(HBRUSH)   GetStockObject(WHITE_BRUSH);  
   
      if(!RegisterClassEx(&wcl))   return   0;  
   
      hwnd=CreateWindow(  
          szWinName,  
  "Windows   95   Skeleton",  
  WS_OVERLAPPEDWINDOW,  
  CW_USEDEFAULT,  
  CW_USEDEFAULT,  
  CW_USEDEFAULT,  
  CW_USEDEFAULT,  
  HWND_DESKTOP,  
  NULL,  
  hThisInst,  
  NULL  
      );  
       
      ShowWindow(hwnd,nWinMode);  
      UpdateWindow(hwnd);  
   
      while(GetMessage(&msg,NULL,0,0))   {  
          TranslateMessage(&msg);  
  DispatchMessage(&msg);  
      }  
      return   msg.wParam;  
  }  
   
  LRESULT   CALLBACK   WindowFunc(HWND   hwnd,UINT   message,WPARAM   wParam,LPARAM   lParam)   {  
  switch(message)   {  
  case   WM_DESTROY:  
      PostQuitMessage(0);  
      break;  
  default:  
      return   DefWindowProc(hwnd,message,wParam,lParam);  
  }  
      return   0;  
  }  
   
  我用的编译器是VC++6.0  
  BUILD时提示错误为:  
  LIBCD.lib(crt0.obj)   :   error   LNK2001:   unresolved   external   symbol   _main  
  Debug/Cpp1.exe   :   fatal   error   LNK1120:   1   unresolved   externals  
  Error   executing   link.exe.  
  Cpp1.exe   -   2   error(s),   0   warning(s)  
  还请各位大哥指出错误所在。  
  要知道,如果连一个最简单的窗口都建立不了的话,我真的是没有信心学下去了。  
   
  PS:在下愿献上我能给的最高分49分。(不好意思,我太菜了) 问题点数:49、回复次数:14Top

1 楼warrior(不断领悟)回复于 2001-10-08 20:48:19 得分 1

你的工程是不是WIN32应用程序,还是CONSOLE程序,检查一下吧。。。Top

2 楼A_KID(A_KID)回复于 2001-10-08 20:50:29 得分 0

我是直接——新建——C/C++   SOURSE的Top

3 楼A_KID(A_KID)回复于 2001-10-08 20:52:04 得分 0

在COMPILE时提示要新建工作区,我就点YES。Top

4 楼A_KID(A_KID)回复于 2001-10-08 20:56:47 得分 0

^&^%*(&(  
  我得好像有些乱,不好意思。  
  我是点”新建“——”文件“——”C/C++ SOURCE FILE“  
  然后连接,提示要我建立新的工作区,我就点YES。在BUILD时就提示上述错误了。  
   
  请问:是否我新建工程的方法不对,如果是,应该怎样建立新工程呢?  
  总而言之,我写这个程序的目的就是建立一个WINODWS下的EXE文件,双击打开后就是一个最简单的窗口。  
  请各位指教,不胜感激。Top

5 楼lj9852(Loading)回复于 2001-10-08 21:20:00 得分 30

 
  这样:先new,选projects下的Win32   Application,在右边project   name填入工程名,下面location是工程路径,然后一直ok就可以了。  
  接下来new,然后选files下的c++   Source   file,在file里填入文件名,注意把Add   To   project打上勾,然后就可以写程序编译了。Top

6 楼Only_I(我)回复于 2001-10-08 21:23:15 得分 0

upTop

7 楼A_KID(A_KID)回复于 2001-10-08 21:40:52 得分 0

TO:lj9852(老实狼)   
  我的问题是不是出在建立工程的方法不对?  
   
   
  另:请大家推荐几本WINDOWS编程入门书(本人已有一定的C基础——虽然不算高)  
  我现在用的是Herbert   Schildt著,亦鸥翻译组译的《windows95程序设计必读》,此书原名为:《windows95   Programming   Nuts&Bots:For   Experienced   Programmes》——这是在我们学校图书馆里找到的最好的一本了:)  
  Top

8 楼lj9852(Loading)回复于 2001-10-08 21:46:55 得分 0

 
  你建立的是一个win32   api应用程序,要用Win32   Application,其他的我没试过。  
  WINDOWS编程入门书大家都推荐《windows程序设计》,我用的也是这本,确实不错。  
  Top

9 楼Viper()回复于 2001-10-08 22:20:50 得分 5

你的方法一般,也没什么不对,  
  关键在于Project   Setting中,  
  在Link选项卡中,找到/subsystem:windows或/subsytem:console将其全部删除,再试试,  
  通常会成功。Top

10 楼QQrack(QQquick)回复于 2001-10-08 22:41:17 得分 10

    兄弟,你的程序完全是正确的。  
  你这样试试:  
   
    file->new->工程->Win32   Application   选择   工程名和path->   An   empty   project  
  ->finish.  
   
  然后在source   files   中   Add   files   to   folder   ->加入程序就OK了!  
   
   
  Top

11 楼PineGreen(海岛雪浪)回复于 2001-10-08 22:52:23 得分 0

找本VC++的入门书浏览浏览吧。Top

12 楼xrbeck(ALEK)回复于 2001-10-09 11:27:55 得分 3

工程选错了。要选“Win   32   Application".  
  否则编译器去连接main主函数当然出错了。Top

13 楼A_KID(A_KID)回复于 2001-10-09 13:45:37 得分 0

谢谢各位的帮助  
  按照lj9852(老实狼) 的方法,已经解决了问题。  
  终于知道怎样建立应用程序了:)  
  本来这种问题用不着来烦大家的,只是我用的书上只给出了代码,没有给出建立工程的方法,所以我才会犯这样的错误。  
   
  另:请问《WINDOWS程序设计》的作者是谁?哪个出版社出版的?Top

14 楼Viper()回复于 2001-10-09 21:13:30 得分 0

160RMB,全国各大书店有售,分上,下两册,Win32   SDK编程的必备经典。  
  Author   :   charles   petzold,北京大学出版社。  
  Top

相关问题

  • 初学用WINDOWS SDK编程,请教一个初级问题!
  • ******关于Shell编程的初级问题请教******
  • 初级Socket编程错误?
  • 请教windows编程者
  • 初学windows编程,请教。
  • 网络编程初级问题,请各位大侠不吝赐教!
  • 调试vb.net初级编程书中例子不通过,请帮忙!
  • 请问linux下编程和windows下编程有什么不同?
  • 网络编程初级问题。
  • socket编程的初级问题。

关键词

  • win32
  • null
  • wcl
  • hthisinst
  • szwinname
  • usedefault
  • 新建
  • 工程
  • 建立
  • 提示

得分解答快速导航

  • 帖主:A_KID
  • warrior
  • lj9852
  • Viper
  • QQrack
  • xrbeck

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo