我们用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的区别相关推荐

  1. [强]用VC++6.0编译调试汇编程序

    用VC++6.0编译调试汇编程序     使用汇编的一点心得,还不完善,希望高手指点. 第一步:新建工程     新建空的Win32控制台程序. 第二步:添加文件     把源程序和资源文件添加进新建 ...

  2. VC++6.0安装、编译NTL类库

    前言 为了解决大数运算的问题,世界各国的软件开发人员和研究学者都进行了很多 的研究和实践.近年来,越来越多的开发人员开始重视软件工程的作用,为了减少 重复劳动,提高软件的质量和代码复用,许多优秀的大数 ...

  3. vc++6.0中创建工程时选Win32 Application和Win32 console Application的区别

    我想好多朋友在刚使用vc++6.0创建工程时不知道是选Win32 Application或是选Win32 console Application,有的就选择了 Win32 Application,然而 ...

  4. VC++6.0 win32 控制台应用程序 简单应用 附代码

    **VC++6.0 win32 控制台应用程序 简单应用 附代码 ** .cpp 文件名 注意:在源文件添加如下声明: #include //没有.h using namespace std;//使用 ...

  5. VC++ 6.0下OpengGL配置以及glut配置

    转自:http://blog.sina.com.cn/s/blog_5f0cf7bd0100c9oa.html OpenGL官方网站(英文) http://www.opengl.org 下面我将对Wi ...

  6. Win32 Application 、Win32 Console Application、MFC工程项目

    Win32 Application和Win32 Console Application 都是工作在32位Windows环境的程序. Win32  Application 是标准 windows程序,完 ...

  7. VC++6.0 DDK 环境配置

    我目前用的是VC++6.0含SP6中文版+英文版.VC6SP6.ISO (485 MB) Windows 2003 DDK.iso(230 MB) 其实别的版本DDK也可以的,我们要的是一些结构&am ...

  8. vc 6.0与mysql win10_vc 6.0官方下载win10-vc 6.0 win10 64位下载中文完整版-西西软件下载...

    vc 6.0 win10 64位经测试可完美运行且兼容性良好,无论是台式机还是笔记本都可以正常使用.vc++6.0是一款强大的可视化编程工具,是一款优秀专业的C++编译器,界面简洁,易学易用. vc+ ...

  9. c语言编程:vc++6.0入门教程及习题_百度文库,C语言编程:vc++6.0入门教程及习题.doc...

    C语言编程:vc++6.0入门教程及习题.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址 ...

最新文章

  1. Linux备份MySQL xshell_linux shell脚本备份mysql数据库
  2. 使用shell进行mvn打包,根据mvn是否打包成功来进行下一步操作
  3. linux命令编写,编写简单的linux命令
  4. 3种常见的Class级别的错误
  5. 手机流量共享 linux,linux – 通过HTB共享带宽和优先处理实时流量,哪种方案更好?...
  6. 论优秀的码农,学会这5点!
  7. 好看有个性的网站导航源码
  8. 限定概率抽奖_LOL:欧皇一次抽奖得16个永久皮肤 把老马亏得坐公交啦
  9. 杨廷琨Oracle Code大会分享:如何编写高效SQL(含PPT)
  10. 外虚内实是什么意思_广东潮州“茶”文化浓厚,为什么“工夫茶”常被谬传“功夫茶”?...
  11. Ulua_toLua_基本案例(六)_LuaCoroutine2
  12. ORACLE异常(整理网上资料)
  13. jquery $.ajax
  14. 【数据、软件共享】年鉴,夜间灯光,土地数据(永久更新)
  15. 电网101、104规约解析(Java)
  16. c语言指针详解 PPT,最全C语言指针详解.ppt
  17. 前端最常用的移动App开发方式及技术栈详解
  18. miui android 去除 导航栏 代码,09.11 PE-TL10 MIUI6 导航栏可自由隐藏 DPI 布局切换等 HRT_Kangvip...
  19. 最小生成树Prim算法
  20. java jit技术_JVM之JIT

热门文章

  1. 这4个在线游戏网站,上班摸鱼必备
  2. 将 Flutter 应用程序连接到 BLE 设备并监听数据
  3. C#:实现凸包算法​(附完整源码)
  4. 中职计算机基础应用教程ppt,多媒体在中职计算机应用基础教学中的应用
  5. HaaS100开发调试系列 之 使用AliOS Things诊断调试组件定位Bug
  6. 计算机组成原理(谭志虎主编 )
  7. deepin不安装任何软件实现局域网快速共享文件
  8. 筛多肽(水解,活性预测,毒性预测,过敏性预测....)
  9. snmp 获得硬件信息_网络管理员之软硬件安装
  10. mac备忘录html,mac备忘录怎么备份与恢复|mac备忘录的使用方法