《window》核心编程第五版 小结

来源:互联网 发布:ipad进入淘宝卖家中心 编辑:程序博客网 时间:2024/05/22 14:08

   lp春节发的卓越卡买了一吸尘器还有余额,刚好前段时间遇到了window进程异常的问题。于是入手了一本window核心编程第5版,记得几年前之前看过第四版的电子版,但却几乎没有太过深的印象,想来应该是自己没认真读的原因吧!于是决定开贴做下读书笔记。

   第一章主要讲window系统错误处理 ,相对比较简单,无非就是一些setlasterror,getlasterror的问题,基本上实际的服务器编程中作用并不大

  第二章比较出乎意料的就讲到了 字符编码和字符串处理。字符编码 重点讲到了winnt系统基本已经都使用unicode实现,所以开发window程序应该尽量使用unicode编码,可以比用ansi的提高一些效率,主要是节省了操作系统内部从ansi转换为unicode编码的时间。字符串的处理主要讲到了从strcpy -》strcpy_s 加了一个 长度判断的问题。ANSI 和UNICODE的转换,使用MultiByteToWideChar,WideCharToultiByte做转换。判断文本是否为UNICOE IsTextUnicode

 第三章主要讲window内核,window内核管理着window的内核对象,内核对象包括文件,内存映射,IO完成端口,事件,互斥等等,内核对象的安全性,内核对象拥有安全符,用于标识哪些用户和组可以访问之。window内核还做了内核对象本身的引用计数,类似于智能指针计数,引用计数为0时候会自动删除内核对象。内核对象的创建一般都需要带安全性标识符的参数,这是区分内核对象调用和普通API的标志。创建内核对象,注意必须调用closehandle 关闭内核对象。跨进程共享内核对象,方法一是使用对象句柄继承,在createprocess函数里面 把 bInheritHandles 设置为true就可以。方法二是利用内核对象命名,win系统不允许存在同样名字的内核对象,于是延伸出了创建指定名字的互斥量,来防止系统运行多个同样的进程。