Windows 下编程的一些常见问题(不定期更新)
2014-05-16 12:41
246 查看
1 VC中类型BOOL、TRUE、FALSE与c++中的bool数据类型有什么区别与联系?
(1)bool是标准C++数据类型,可取值true和false(都是小写,c++中关键字都是小写)。单独占一个字节, 如果数个bool对象列在一起,可能会各占一个bit,这取决于编译器; BOOL是微软定义的宏typedef int BOOL(宏一般都是大写的,可以利用这一点来帮助理解和判断)。与bool不同,它是一个三值逻辑, TRUE/FALSE/ERROR,返回值为>0的整数为TRUE,0为FALSE,-1为ERROR。 Win32 API中很多返回值为BOOL的函数都是三值逻辑。比如GetMessage()。(2)BOOL只是一个宏,不是基本的数据类型,BOOL实际上=int,占4个字节空间。bool 是C的基础数据类型,占用1个字节。对于BOOL类型,当值为1时为真,即TRUE;当值为0时为假,即FALSE;FALSE和TRUE都是宏。对于bool类型,值只要不是0就是为真,即true;当值为0时为假,即false;
(3)如果自己用win32 API方式定义的BOOL类型,在判断循环时就跟c++有点区别。c++中,只有true和false,因此可以用while(flag)来写循环,win32 API由于BOOL是个三值逻辑,最好用while(flag==TRUE)来比较。
(4)注:windows为了兼容问题定义的基础变量。
typedef unsigned long DWORD;
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef float FLOAT;
2.2 匈牙利表示法
3. Win32 Application 与 Win32 Console Application的区别
前者是普通的基于窗口的,用win32 sdk或MFC开发,在实际开发中使用,入口是WinMain;而后者是命令行的那种,DOS窗口,一般用于教学,入口是main。windows应用程序跟dos下的控制台应用程序最大的区别有两点。第一点是表象的:控制台应用程序是“黑屏的”,而windows应用程序是基于“窗口的”;第二点是内在的,控制台应用程序的核心内容是与操作系统无关的(虽然我们总会频繁的使用printf是得能从屏幕上显示打印结果);而windows应用程序是跟操作系统密切相关的。相关文章推荐
- Linux 使用的一些常见问题,包括系统,应用程序等! /********** 不定期更新 **********/
- Windows 8 应用开发常见问题及解决方案(持续更新)
- windows编程新手常见问题
- appframework学习--appframework开发常见问题及解决方法(不定期更新)
- Android编程心得-常见问题解决办法(不断更新中..)
- 模电的一些零碎问题,不定期更新
- Windows补丁和更新常见问题解决方法
- asp.net 与oracle 连接的一些常见问题(不断更新中)
- 对Python新手编程过程中如何规避一些常见问题的建议
- lumia 更新到 windows 10 之后的一些问题及解决办法
- Linux 使用过程中常见问题及其解决方法(不定期更新)
- 关于我遇到的java中编译没错运行出错的一些问题(不定期更新)
- android在windows下面coco2dx平台搭建以及一些常见问题的解决
- zz: windows 下编程 常见的 字符集的问题。
- Windows常见问题解决方法 [2013-12-23更新]
- WP7开发中的一些小技巧和问题解决(不定期更新)
- 浅谈Windows多线程编程几个常见问题
- symfony框架下服务器(Windows)部署的一些常见问题[汇总中]
- Django系列教程:[X]学习中的常见问题(不定期更新)
- 在Windows系统下Git使用过程中配到的一些问题汇总(持续更新)