
Windows Programming
文章平均质量分 51
nrj
这个作者很懒,什么都没留下…
展开
-
Windows中使用的Unicode和ANSI函数
Windows 给出的带有字符串参数的函数都有两个相同版本的函数与之对应,一个是 Unicode 版本,一个是 ANSI 版本,分别以 FunctionNameW 和 FunctionNameA 表示,FunctionName 实际上是一个宏定义。 用户在使用 FunctionNameA 版本的 ANSI 函数时,WIndows 内部会分配一块内存来将 ANSI 字符串转换为 Unicode 字符串,然后再调用 FunctionNameW 版本的 Unicode 函数,FunctionNameW 返回时,原创 2011-01-15 13:35:00 · 757 阅读 · 0 评论 -
内核对象
系统创建和维护了多种类型的内核对象,如:令牌对象、事件对象、文件对象、文件映射对象、I/O完成端口对象、作业对象、邮件槽对象、互斥对象、管道对象、进程对象、信号量对象、线程对象、等待对象和线程池工作工厂对象。 内核对象只不过是一块由内核分配的内存,这个内存块的数据结构成员维护着这个内核对象,一些成员对所有内核对象来说是相同的,如安全标识符、使用计数等,但多数成员是特定于对象类型的,如进程对象有一个进程 ID,一个基本的优先级和一个退出代码,而一个文件对象有一个偏移量,一个共享模式和一个打开模式。内核对象只原创 2011-01-15 13:35:00 · 455 阅读 · 0 评论 -
错误处理
当调用一个Windows例程发生错误时,调用 GetLastError 函数获取一个错误编号来表明发生了什么错误,必须在例程返回后立即调用 GetLastError,否则返回的错误号可能已被更改。所有的Microsoft预定义的错误编号都在 WinError.h 头文件中定义。可以使用 VS 的“错误查找”工具来获得错误的文本信息。 某些例程成功返回,需要调用 GetLastError 来知道一些其他信息,如 CreateEvent 函数创建了一个内核对象,但相应的内核对象名称已存在,则会产生一个错误代码原创 2011-01-15 13:31:00 · 445 阅读 · 0 评论 -
字符编码
UTF – Unicode Transformation Format Windows 中的 Unicode字符 使用 UTF-16 编码,UTF-16 编码的每一个字符由2个字节(16位)组成。 UTF-8 编码:使用1到4字节表示一个字符。值小于 0x0080 的字符使用一字节,美国字符集一般属于这类;值位于 0x0080和0x07FF之间的字符使用两个字节,欧洲和中东国家的字符属于这一类;大于 0x0800 的字符使用三个字节表示,东亚国家语言位于这个范围内;最后,代理对(surrogate pa原创 2011-01-15 13:35:00 · 429 阅读 · 0 评论 -
字符编码和String数据类型
Microsoft C/C++ 编译器定义了一个内置的 wchar_t 数据类型,表示一个 UTF-16 字符,这个类型只有在编译器指定了 /Zc:wchar_t 开关后才有效。(之前的编译器将 wchar_t 类型定义为 unsigned short) 定义一个 wchar_t 类型的变量: wchar_t c = L'A';wchar_t szBuffer[100] = L"A string";字符串之前的“L”告诉编译器这是一个Unicode字符串。实际编写源代码时,一般用原创 2011-01-15 13:32:00 · 546 阅读 · 0 评论 -
Header annotation 头注解
参考MSDN(http://msdn.microsoft.com/en-us/library/aa383701.aspx) Header annotation 表示一个函数怎样使用它的参数和返回值。 在编译器的命令行中增加 /analyze 开关可以进行代码分析,当你在函数中使用违反注解定义的语法规则时编译器可以进行提示。 有两种注解:缓冲区注解和高级注解 缓冲区注解 缓冲区注解表示函数怎样使用它的指针并能检测到缓冲区溢出,每个参数可有0或1个缓冲区注解。一个缓冲区注解由一个前导下划线和以下描述的原创 2011-01-15 13:34:00 · 1555 阅读 · 0 评论