在VC 6.0里Win32 Application和Win32 console Application的区别
我们用Visual C++在创建工程的时候有Win32 Application和Win32 console Application,下面我们就了解下他们的区别。
在VC 6.0里Win32 Application和Win32 console Application的区别
1、基本定位区别
Win32 Application和Win32 Console Application 都是工作在32位Windows环境的程序。其中,Win32 Application 是标准 windows程序,完全拥有windows的特性,也即我们常说的窗口应用程序!它通过GUI(Graphics User Interface图形用户接口)可以把窗口界面做得比较个性化,比如圆形的、不规则形状的等等,另外,我们还可以通过鼠标点击来完成控制。所以说它是基于WINDOWS平台的32位开发环境开发应用程序(即,SDK程序)。
Win32 Console Application(win32控制台应用程序)往往是像MS-DOS窗口(XP中叫命令提示符)的样子出现,我们得用键盘输入各种命令来使用它,或者叫CUI(Character User Interface字符用户接口)。它是基于DOS开发平台开发应用程序,不能使用与图形有关的函数,控制台程序。不过它也提供了一部分访问windows系统API的能力,比如可以创建窗口、对话框等等!虽然 Win32 Console Application 的运行界面貌似DOS,但他只是 Windows 底下的虚拟模式,并不是真正意义下的DOS,在Win32 Console Application 中,很多 MFC 都是非法的!
2、 两者的区别还在于:
他们在VC里的链接参数不同,在文件头里(PE头)有一个标记表明该文件是Application还是Console。OS在创建对应的进程时,如果是Console,除了载入文件映像并开启进程外(这一点和Application相同),同时创建一个Console对象(就是那个黑黑的窗口)与之关联,而且这种关联是可以和编程脱开的。
3、常犯错误
很多VC初学者可能会常遇到如下链接错误:
Linking... /subsystem:windows
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol
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,于是上面提及的链接错误就就经常出现了。
在VC 6.0里Win32 Application和Win32 console Application的区别相关推荐
- [强]用VC++6.0编译调试汇编程序
用VC++6.0编译调试汇编程序 使用汇编的一点心得,还不完善,希望高手指点. 第一步:新建工程 新建空的Win32控制台程序. 第二步:添加文件 把源程序和资源文件添加进新建 ...
- VC++6.0安装、编译NTL类库
前言 为了解决大数运算的问题,世界各国的软件开发人员和研究学者都进行了很多 的研究和实践.近年来,越来越多的开发人员开始重视软件工程的作用,为了减少 重复劳动,提高软件的质量和代码复用,许多优秀的大数 ...
- vc++6.0中创建工程时选Win32 Application和Win32 console Application的区别
我想好多朋友在刚使用vc++6.0创建工程时不知道是选Win32 Application或是选Win32 console Application,有的就选择了 Win32 Application,然而 ...
- VC++6.0 win32 控制台应用程序 简单应用 附代码
**VC++6.0 win32 控制台应用程序 简单应用 附代码 ** .cpp 文件名 注意:在源文件添加如下声明: #include //没有.h using namespace std;//使用 ...
- VC++ 6.0下OpengGL配置以及glut配置
转自:http://blog.sina.com.cn/s/blog_5f0cf7bd0100c9oa.html OpenGL官方网站(英文) http://www.opengl.org 下面我将对Wi ...
- Win32 Application 、Win32 Console Application、MFC工程项目
Win32 Application和Win32 Console Application 都是工作在32位Windows环境的程序. Win32 Application 是标准 windows程序,完 ...
- VC++6.0 DDK 环境配置
我目前用的是VC++6.0含SP6中文版+英文版.VC6SP6.ISO (485 MB) Windows 2003 DDK.iso(230 MB) 其实别的版本DDK也可以的,我们要的是一些结构&am ...
- vc 6.0与mysql win10_vc 6.0官方下载win10-vc 6.0 win10 64位下载中文完整版-西西软件下载...
vc 6.0 win10 64位经测试可完美运行且兼容性良好,无论是台式机还是笔记本都可以正常使用.vc++6.0是一款强大的可视化编程工具,是一款优秀专业的C++编译器,界面简洁,易学易用. vc+ ...
- c语言编程:vc++6.0入门教程及习题_百度文库,C语言编程:vc++6.0入门教程及习题.doc...
C语言编程:vc++6.0入门教程及习题.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址 ...
最新文章
- Linux备份MySQL xshell_linux shell脚本备份mysql数据库
- 使用shell进行mvn打包,根据mvn是否打包成功来进行下一步操作
- linux命令编写,编写简单的linux命令
- 3种常见的Class级别的错误
- 手机流量共享 linux,linux – 通过HTB共享带宽和优先处理实时流量,哪种方案更好?...
- 论优秀的码农,学会这5点!
- 好看有个性的网站导航源码
- 限定概率抽奖_LOL:欧皇一次抽奖得16个永久皮肤 把老马亏得坐公交啦
- 杨廷琨Oracle Code大会分享:如何编写高效SQL(含PPT)
- 外虚内实是什么意思_广东潮州“茶”文化浓厚,为什么“工夫茶”常被谬传“功夫茶”?...
- Ulua_toLua_基本案例(六)_LuaCoroutine2
- ORACLE异常(整理网上资料)
- jquery $.ajax
- 【数据、软件共享】年鉴,夜间灯光,土地数据(永久更新)
- 电网101、104规约解析(Java)
- c语言指针详解 PPT,最全C语言指针详解.ppt
- 前端最常用的移动App开发方式及技术栈详解
- miui android 去除 导航栏 代码,09.11 PE-TL10 MIUI6 导航栏可自由隐藏 DPI 布局切换等 HRT_Kangvip...
- 最小生成树Prim算法
- java jit技术_JVM之JIT
热门文章
- 这4个在线游戏网站,上班摸鱼必备
- 将 Flutter 应用程序连接到 BLE 设备并监听数据
- C#:实现凸包算法​(附完整源码)
- 中职计算机基础应用教程ppt,多媒体在中职计算机应用基础教学中的应用
- HaaS100开发调试系列 之 使用AliOS Things诊断调试组件定位Bug
- 计算机组成原理(谭志虎主编 )
- deepin不安装任何软件实现局域网快速共享文件
- 筛多肽(水解,活性预测,毒性预测,过敏性预测....)
- snmp 获得硬件信息_网络管理员之软硬件安装
- mac备忘录html,mac备忘录怎么备份与恢复|mac备忘录的使用方法