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 成功
...全文
285 9 打赏 收藏 转发到动态 举报
写回复
用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为入口点
vc6.0 使用教程详解.doc,大小仅 284KB,但作为一个 vc6.0 的入门教程,本书就足够了。 内容预览: 你首先要打开VC6.0界面,一般用得较多的是Win32控制台应用程序(源程序,扩展名.cpp), 步骤是:(先工程—后文件—编译—连接---运行) 1,建立一个工程,“文件”——“新建”,出现下面界面: 选择“Win32 Console Application”(控制台应用程序,左边倒数第三个),命名工程名称,选择保存位置, 点击“确定”,进入下一步,看到如下提示界面: 建立一个空工程,对应其他需要的你一可以建立别的工程;点击“完成”,之后: 显示你创建的工程的信息。 2,再在有一个的工程的条件下,我们再建立一个源文件; “文件”——“新建”(快捷键Ctri+N),出现: 建立源文件,选择“C++ Source ”,一般都是建立这种文件的(适用在当文件适用)如果要建立头文件的话,选择“C/C++ Header File”,(适用在多文件工程使用)命名,文件名称,点击“确定”,之后: 进入编辑区,在主界面编写代码:如下编写完之后呢: 可以按编译按钮 调试程序,看看有没有错误,有的话改正,没有的话就可以再按连接按钮 检查连接(多文件工程时常用,检查文件间是否正常连接),最后,点运行按钮 ,就可以运行了。 如果是您有代码如:cpp文件,或 .h 文件,想添加都VC6.0里来测试的话,可以这样做: 首先,要理解一下 文件扩展名为:cpp和.h 文件扩张名是.h,代表的是头文件,一般是书写一些函数原型,以及一些在整个程序常用到的结构体,频繁使用的函数说明,定义等等; 文件扩张名为,cpp的,是C++的源文件,也是最常用到的文件,每建立一个工程都要至少一个源文件(至少要有一个函数入口——主函数main() ),包含了核心代码; 建立与运行说明:(以VC 6.0编译器为例,其他编译器类似) 首先,打开VC 6.0编译环境; 在菜单栏——文件(的下拉菜单选择“新建”),在弹出的选择窗口,选Win32 Console Application(控制台应用程序) ,在填写工程名称,选择一个程序保存路径,点击“完成”,查看工程信息。在点击“确定”,就建立一个简单的工程了。 再点击左边的工程信息右下角的“FileView”选项;可以看到你新建的工程,再双击你新建的工程名 可以查看工程的信息。 在双击工程文件,在这里是 777.files,可以看到该工程的包含的文件 其,Source Files 为包含所有工程的源文件 Header Files 为包含所有工程的头文件 在源文件选项“Source Files ”,右键单击的“添加目录到工程”,添加你要打开的扩展名为 .cpp的源文件。在头文件选项“ Header Files”,右键单击的“添加目录到工程”,添加你要打开的扩展名为 . h的头文件。添加完你所有的头文件和源文件之后,检查一下是否添加完毕,之后就可以编译了。 其第一个按钮 为编译按钮,可以找出工程的错误信息,有错误修改,没错误就可以跳到连接 ,编译右边的按钮 ,即第三个按钮(多文件工程一定要连接,查看文件是否准确相连接) 当编译,连接都没有错误时,可以按运行按钮 ,即可以运行了。

64,648

社区成员

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

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