vc6.0 中的Win32 Application 与Win32 Console Application

wzw12315 2009-07-19 10:23:41
vc6.0 中的Win32 Application 与Win32 Console Application
有什么区别

#include<iostream>
using namespace std;
int main()
{
int a=10;
cout<<a<<endl;
return 0;
}
这程序在Win32 Application linked 不成功,但在WIn32 console application linked 成功
...全文
295 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kojie_chen 2009-07-20
  • 打赏
  • 举报
回复
mark
xmu_才盛 2009-07-20
  • 打赏
  • 举报
回复
简单的说 就是 宏置换 入口函数
xmu_才盛 2009-07-20
  • 打赏
  • 举报
回复
#ifdef WPRFLAG
mainret = wWinMain(
#else /* WPRFLAG */
mainret = WinMain(
#endif /* WPRFLAG */
(HINSTANCE)&__ImageBase,
NULL,
lpszCommandLine,
StartupInfo.dwFlags & STARTF_USESHOWWINDOW
? StartupInfo.wShowWindow
: SW_SHOWDEFAULT
);
#else /* _WINMAIN_ */

#ifdef WPRFLAG
__winitenv = envp;
mainret = wmain(argc, argv, envp);
#else /* WPRFLAG */
__initenv = envp;
mainret = main(argc, argv, envp);
#endif /* WPRFLAG */
ysysbaobei 2009-07-20
  • 打赏
  • 举报
回复
顶下
ChamPagneZ 2009-07-20
  • 打赏
  • 举报
回复
windows 有很多子系统,包括win32,控制台,驱动模式,posix等等,你要写什么子系统如下定义就好了.
默认是控制台子系统

#pragma comment(linker, "/SUBSYSTEM: /*这里确定你要用什么应用程序*/")

你甚至还可以改变入口点. 把main改成任何你想要的函数名称.
/ENTRY就可以办到.
  • 打赏
  • 举报
回复
Win32 Application和Win32 Console Application 都是工作在32位Windows环境的程序。

其中Win32 Application 就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的、

不规则形状的…… 它们都是所谓的GUI(Graphics User Interface图形用户接口),我们可以通过鼠标点

击来完成控制。

而Win32 Console Application(win32控制台应用程序)往往是像MS-DOS窗口(XP中叫命令提示符)的样

子出现,我们得用键盘输入各种命令来使用它; 或者叫CUI(Character User Interface字符用户接口)。

vc6里Win32 Application和Win32 console Application的区别:

很多VC初学者可能会常遇到如下链接错误:
Linking... /subsystem:windows
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol WinMain @16

Debug/TestWin.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

解决方法是:将project-settings-link的project options里的/subsystem:windows 改

成/subsystem:console

原因:Win32 Application的入口函数为WinMain
Win32 Console Application的入口函数是main

换句话说,如果你编写传统的C程序,必须建立Win32 Console程序,但VC里面默认的是Win32

Application,于是上面提及的链接错误就就经常出现了。而Win32 Application和Win32 Console的区别

就在于VC里链接参数不同。

有人问如何才能使Console Application运行完全后自动关闭其窗口。
MS-Dos窗口只有在Debug时才会出现,编译之后,直接运行编译文件,关闭文件时窗口会自动关闭。

来源于一模一样问题的帖子:http://topic.csdn.net/u/20080521/17/ec4654ec-9081-4483-8e14-6621140fafc1.html
ALLAN_ONLY 2009-07-19
  • 打赏
  • 举报
回复
二楼.
liao05050075 2009-07-19
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20010224/00/74558.html
arong1234 2009-07-19
  • 打赏
  • 举报
回复
Win32 Application的目标系统是windows,以WinMain为入口点
Win32 Console Application的目标系统是DOS,以main为入口点

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧