【转】WIN32 控制台程序
http://blog.csdn.net/houmin0036/article/details/7702236
win32控制台项目指在32位Windows命令提示符(即所谓的dos)环境下运行的应用程序...
win32项目指运行于32位Windows操作系统中的应用程序...包括win32控制台项目...
1、Win32项目包括:Win32 应用程序、控制台应用程序、DLL 或其他静态库的项目;
2、控制台应用程序通常被设计为没有图形用户界面,并编译成独立的可执行文件。控制台应用程序通常从命令行运行,同时在命令提示和运行的应用程序之间交换输入和输出信息。
win32应用程序是有窗体的(当然也可以没有),有Windows消息循环机制的。 而win32控制台应用程序只是在控制台下运行的程序,类似以前dos的程序。
可以在VC里建一个win32 application和一个win32 console application,两个dsp工程文件对比一下,你会发现应用程序里的subsystem:windows,控制台程序里的subsystem:console。 subsystem这个链接选项告诉Windows如何运行可执行文件。 subsystem是console的话,Windows在进入可执行文件的代码前,就会产生一个控制台窗口。 subsystem是windows的话,操作系统就不产生console窗口,该应用程序的窗口由用户自己创建。
可以调用GUI里面的API的,
如果你看了一些VC的启动代码(就是main,WinMain,DllMain之前的代码)就知道
控制台程序在启动代码中多了取得标准输入输出句柄以及将程序参数转化成C语言格式
的参数形式
控制台程序就是通过命令行的方式进行输入和输出的
Win32程序是它的上层概念,Win32程序可以是Console的也可以是GUI的
Win32 程序:利用Windows编译器、连接器做出来的程序,都是所谓的Win32程序。
Console程序:也是Win32程序,它是dos-like程序,可以调用C Runtime函数和不牵涉GUI的Win32API函数。Console视窗将是其标准输入输出设备(cin、cout)。
Dos程序:过去在dos环境开发的程序。它也是以main()为函数进入点,可以调用C Runtime函数,但是不具备调用Win32API函数的能力。
Windows支持的两种应用程序:
(1) 基于图形用户界面的应用程序,即GUI;
(2) 基于控制台用户界面的应用程序,即CUI.
Windows应用程序必须有一个在应用程序启动运行的调用进入点函数:
应用程序类型 进入点
需要ANSI字符和字符串的GUI应用程序 WinMain
需要ANSI字符和字符串的CUI应用程序 main
需要Unicode字符和字符串的GUI应用程序 wWinMain
需要Unicode字符和字符串的CUI应用程序 wmain
前面是DOS环境的,是单任务的
后面是WINDOWS的,支持多任务,多线程~
win32控制台程序是用来编写DOS程序的,在DOS下生成WINDOWS窗口的编写是相当麻烦的。要用DOS下c语言的绘图函数把窗口画出来。 但VC已经提供了窗口的框架和显示,我们现在没必要再去做这些工作了。 程序入口不能决定任何事,它就是一个入口,程序必须有它,程序完成什么样的功能由程序的代码来确定。 窗口就是一个图形,是由程序画出来的,代码封装在MFC底层。我们不需要具体了解,只需要知道原理就可以了。
源地址:http://hi.baidu.com/%D6%D0%B9%FA%C9%BD%B6%AB%C8%CB2009/blog/item/0ebc38d758af
【转】WIN32 控制台程序的更多相关文章
- Win32控制台程序和Win32应用程序
刚接触Windows那一套,大多数概念都还没建立起来,整理了一下网上对“Win32控制台程序”的理解,谢谢各位网友了. win32控制台项目指在32位Windows命令提示符(即所谓的dos)环境下运 ...
- vs2008 新建win32控制台程序提示:脚本错误
解决方案: 1.根据错误信息中的url,找到对应文件夹下的htm文件 2.使用notepad++打开default.htm文件,找到错误提示的434行,注释掉433和434行 然后保存文件,重新新建w ...
- 用消息在Win32控制台程序多线程间进行通讯
#include <stdio.h> #include <windows.h> //#include <iostream> //#include <pro ...
- win32控制台程序 宽字符与短字符转化
由于vs各版本之间存在字符设置不兼容问题,特总结char与tchar的互相转换函数,如下,在之后的工程中可以使用. void TcharToChar(const TCHAR * tchar, char ...
- 如何隐藏win32 控制台程序的console窗口 2011-06-17 17:59
加上 即可 // 隐藏窗口#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainC ...
- vc2010 win32 控制台应用程序中文乱码
vc2010 win32 控制台应用程序中文乱码 在 vc2010 上用 win32 控制台程序写些测试代码调用 windows api ,处理错误信息时,发现用 wprintf 输出的错误信息出现了 ...
- VS中空项目、win32项目、控制台程序的区别(转)
空项目,大多数想单纯创建c++工程的新同学,打开vs后很可能不知道选择创建什么工程,这时候请相信我,空项目是你最好的选择.因为空工程不包含任何的源代码文件,接下来你只需要在相应的源代码文件夹和头文件文 ...
- Linux终端和win32控制台文本颜色输出
在使用putty.secureCRT.XShell等终端仿真器连接linux系统时,ls.vim等工具的输出都含有各种颜色,这些颜色的输出大大地增强了文本的可读性. 通常我们可以使用echo命令加-e ...
- Win32控制台、Win32项目、MFC项目、CLR控制台、CLR空项目、空项目区别
转载:https://blog.csdn.net/zfmss/article/details/79244696 1.Win32控制台 初始代码模版以main为程序入口,默认情况下,只链接C++运行时库 ...
随机推荐
- iOS 自定义图片和文字垂直显示按钮<上面是图片,文字显示下面>
#import <UIKit/UIKit.h> @interface VerticalButton : UIButton @end #import "VerticalButton ...
- 一次疏忽导致的bug
NBB_PUT_SHORT 这个宏是按char* 类型算指针的实际工作中,没有注意这一点,输入指针类型 强转为了 SHORT* 导致 填充的内容错误 这是第一次在工作中遇到 指针类型相关的问题值得记录 ...
- python自省函数getattr的用法
getattr是python里的一个内建函数 getattr()这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.这样,你就可以把一个类可能要调用的方法放在配置文件里,在需要的时 ...
- jQuery Mobile 列表内容
jQuery Mobile 列表缩略图 对于大于 16x16px 的图像,请在链接中添加 <img> 元素. jQuery Mobile 将自动把图像调整至 80x80px: 实例: &l ...
- Oracle 去除两边空格
sql 去掉两头空格sql语法中没有直接去除两头空格的函数,但有ltrim()去除左空格rtrim()去除右空格.合起来用就是sql的trim()函数,即select ltrim(rtrim(UsrN ...
- Centos7.0安装配置PHP7.0
YUM安装所需开发包 yum install wget make gcc gcc-c++ bison autoconf patch \ pcre-devel zlib-devel openssl-de ...
- VS2012开发工具BUG
发现VS2012开发工具 新建立项目名称长度限制的一个bug, 向导方式名称长度限制56个,但建立好的项目名称长度是可以改的很长很长. 也有想是不是生成程序集的名称会有限制,同样这里生成程序集名称,及 ...
- WNDR3700V4恢复原厂固件(使用TFTP刷网件原厂固件)
WNDR3700v4原厂固件下载地址: http://support.netgear.cn/doucument/More.asp?id=2203 操作方法: 1.将设备断电: 2.按住设备背面的Res ...
- xml的解析与创建——bing到youdao导入文件的转换
首先是为了解决一个问题:如何将必应单词本中记录的单词转入到有道词典中去.实际上,必应词典可以导出xml文件,但是该文件有道词典无法解析.这里涉及到xml的解析和创建了. 代码如下: import ja ...
- win8 vs2010 openni2 配置
打开一个新项目或者已存在的项目用以使用 OpenNI 在Visual Studio 菜单中, 打开项目菜单,选择项目属性. 在C/C++ 选项卡中, 在"常规" 下, 选择 &q ...