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

编译过了但执行不起来请大家帮帮我

楼主pensifia711(pensifia711)2003-02-01 22:08:21 在 VC/MFC / 基础类 提问

小弟照书打了一个用API创建窗口的程序就是先登记窗口类别,然后注册,创建窗口,显示更新,创建消息循环这几个步骤。  
  编译没有error,但有warning.执行提示  
  Linking...  
  hellowin.obj   :   error   LNK2001:   unresolved   external   symbol   _Text  
  LIBCD.lib(crt0.obj)   :   error   LNK2001:   unresolved   external   symbol   _main  
  Debug/hellowin.exe   :   fatal   error   LNK1120:   2   unresolved   externals  
  Error   executing   link.exe.  
  就这样通不过。  
  为什么会出现这样的问题,小弟就怕这种看不懂的错误,请各们大哥指正。  
  源各序:  
  #include<windows.h>  
  LRESULT   CALLBACK   WndProc(HWND,UINT,WPARAM,LPARAM);  
   
  int   WINAPI   WinMain(HINSTANCE   hInstance,HINSTANCE   hPrveInstance,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;//为应用程序句柄  
  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   REGQUIRES   WINDOWS   98!"),szAppName,MB_ICONERROR);  
  return   0;  
  }  
  //注册成功后创建窗口  
  hwnd=CreateWindow(szAppName,//WINDOWS   CLASS   NAME  
  TEXT("THE   HELLO   PROGRAM"),//WINDOWS   CAPTION  
  WS_OVERLAPPEDWINDOW,//WINDOWS   STYLE  
  CW_USEDEFAULT,//inital     x   position  
  CW_USEDEFAULT,//inital     y   position    
  CW_USEDEFAULT,//inital     x   size  
  CW_USEDEFAULT,//inital     y   size  
  NULL,                   //PARENT   WINDOWS   HANDLE  
  NULL,     //WINDOWS   MENU   HANDLE  
  hInstance,     //handle  
  NULL);  
   
  //显示与更新  
  ShowWindow(hwnd,iCmdShow);//hwnd  
  UpdateWindow(hwnd);//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   ,windows   98   !"),-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);  
  }  
   
  问题点数:20、回复次数:9Top

1 楼rainbowinfog(朝夕)回复于 2003-02-01 22:33:21 得分 0

把工程\设置\Link下的ProjectOptions里的subsystem:windows改为:  
  subsystem:console  
  Top

2 楼xiaott(我能睡觉吗)回复于 2003-02-01 22:34:50 得分 0

重新建一个工程,重新编译!Top

3 楼kingcom_xu(冷羽)回复于 2003-02-01 22:34:53 得分 0

>>error   LNK2001:   unresolved   external   symbol   _Text  
  你可能得包含<TCHAR.h>  
   
  >>error   LNK2001:   unresolved   external   symbol   _main  
  你得在project->setting->link里把/subsystem:console改为/subsystem:windowsTop

4 楼kingcom_xu(冷羽)回复于 2003-02-01 22:36:36 得分 0

其实在VC的file->new->win32   application->a   typical   "hello   world"   application...就能和成上述代码并自动设定好所有的选项了..Top

5 楼pensifia711(pensifia711)回复于 2003-02-01 23:06:16 得分 0

各们大哥,这个错误还是没法解决  
  hellowin1.obj   :   error   LNK2001:   unresolved   external   symbol   _Text  
  Debug/hellowin1.exe   :   fatal   error   LNK1120:   1   unresolved   externalsTop

6 楼kingcom_xu(冷羽)回复于 2003-02-01 23:18:09 得分 0

#include   <tchar.h>了还不行吗?Top

7 楼pensifia711(pensifia711)回复于 2003-02-01 23:31:42 得分 0

小弟百思不得其解,如何修正这个错误  
  Top

8 楼jindayu(Idislikework)回复于 2003-02-01 23:44:35 得分 0

CSDN改得我受不了了,请问点那里发帖?????????????Top

9 楼kingcom_xu(冷羽)回复于 2003-02-01 23:59:22 得分 20

我知道了  
   
  DrawText(hdc,Text("hello   ,windows   98   !"),-1,&rect,  
  DT_SINGLELINE|DT_CENTER|DT_VCENTER);  
   
  Text应该改为TEXTTop

相关问题

  • 我编写了一个简单的Proc*C程序,但不知怎样编译执行(NT环境),请指教!
  • 请问 pathclass设置正确 语法正确 编译通过 但在执行时 显示"Exception in thread "main" java.lang.NoClassDefFoundError"…………不解
  • 这个procedure编译时没错,但执行时出错,这是为什么?请高手们HELP
  • 编译能通过 但执行时报错 请各位达人帮忙看看 一个小程序段
  • 请问如何把工程编译成可执行的文件??
  • !!!怎么编译通过,但是执行exe是会出错呀?
  • 我能够编译文件,但是执行却不行~!!!
  • 能编译,但不能执行!!!为什么???
  • 如何编译执行?
  • 编译后,无法执行????

关键词

  • application
  • null
  • wndclass
  • hellowin
  • szappname
  • unresolved externals
  • hinstance
  • 创建
  • error lnk
  • symbol

得分解答快速导航

  • 帖主:pensifia711
  • kingcom_xu

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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