《Windows核心编程》
第一部分 程序员必读
第一章 对程序的错误处理
第二章 Unicode
1 介绍
Unicode的所有字符都是16位(两个字节)
2 编写Unicode代码
(1) C语言库对Unicode的支持
wchar_t是个Unicode类型, typedef unsigned short wchar_t
使用TChar.h 文件创建ANSI/Unicode通用的源代码----主要是通过使用或不使用_UNICODE宏来
识别的
通用 ANSI Unicode
TCHAR: char wchar_t
_TEXT(X) L ## x X
注意:其中_TEXT宏 起到的作用和 L相似,只不过它更通用,L主要是用来
告诉编译器使用Unicode来编译
##是用中的连接符
(2)windows定义的Unicode数据类型
是通过UNICODE宏来识别的
通用数据类型: PTSTR, PCTSTR
总结: 将通用数据类型(TCHAR, PTSTR)用于文本字符和字符串, 并在函数参数用使用
如果是开发DLL,则要提供两个函数版本(ANSI 和 Unicode)
第三章 内核对象
1 什么事内核对象
内核对象可以供系统和应用程序使用来管理各种资源,如进程,线程,文件等。
每个内核对象只是内核分配的一块内存块,并且只能有该内核访问。该内存块是一种数据结构,它的成员负责维护
该对象的各种信息。
当调用一个创建内核对象的函数时,该函数就返回一个用于标识该对象的句柄。
内核对象由内核所拥有,而不是由进程所拥有。
内核对象计数器:内核对象可以知道有多少个进程在使用它
同时可以保证在没有进程使用该内核对象时,系统不保留该内核对象
内核对象的生存期可以比创建它的进程长。
安全性:权限管理
判断一个对象是否是个内核对象就可以参看创建对象的函数是否有个PSECURITY_ATTRIBUTES
2 进程内核对象句柄
进程初始化时,系统为其分配一个句柄表,该表只用于内核对象,不用于用户对象
创建内核对象的函数返回一个和进程相关的句柄,这个句柄可以被相同进程下的所有线程使用。
3 跨越进程边界共享内核对象
共享内核对象的机制:
(1)继承对象
(2)命名对象
(3)复制对象句柄
第二部分 编程的具体方法
第三部分 内存管理
第四部分 动态链接库
第五部分 结构化异常处理
第六部分 窗口