Windows via C/C++ 5th 读书笔记(Ⅰ)

 按照计划开始每天一章的阅读:),第一章:Error Handling

这一章主要是讲授Windows里面的错误处理,确切地说是WindowsFunction的Error Code以及其意义。

要点:

1、ErrorCode的结构:

 //The Structure is as below

//  [31---------30]--------------[29]---------------------[28]-------[27-----------------16]-[15-------------0]

//  Severity(2bits)   |  Microsoft/Customer(1bit)  | Reserved(1bit) |  Facility code(12bit) | Exception Code

//  0 = Success       | 0 = Microsoft Defined Code |   Must be 0    | The First 256 values  | 

//  1 = Informational | 1 = Customer Defined Code  |                | are reserved by       | Customer-Defined

//  2 = Warning       |                            |                | Microsoft.            | code

//  3 = Error         |                            |                |                       |

//------------------------------------------------------------------------------------------------------------

 2、两个函数的使用:

 FormatMessage Function

Formats a message string. The function requires a message definition as input. The message definition can come from a buffer passed into the function. It can come from a message table resource in an already-loaded module. Or the caller can ask the function to search the system's message table resource(s) for the message definition. The function finds the message definition in a message table resource based on a message identifier and a language identifier. The function copies the formatted message text to an output buffer, processing any embedded insert sequences if requested.

 Syntax

 DWORD WINAPI FormatMessage(

  __in      DWORD dwFlags,

  __in_opt  LPCVOID lpSource,

  __in      DWORD dwMessageId,

  __in      DWORD dwLanguageId,

  __out     LPTSTR lpBuffer,

  __in      DWORD nSize,

  __in_opt  va_list *Arguments

);

 具体用法:http://msdn.microsoft.com/en-us/library/ms679351.aspx

SetLastError 

Function

 Sets the last-error code for the calling thread.

 Syntax

 void WINAPI SetLastError(

  __in  DWORD dwErrCode

);

 具体用法:http://msdn.microsoft.com/en-us/library/ms680627.aspx

 3、小技巧一个: 使用$err,hr来查看当前线程的错误码(PS:记得好像老版本的Windows核心编程写的是@err,hr)。

 4、错误码的目的: 指示出错误的原因,快速判断WindowsFunction是否正常执行,同时还可以根据错误码格式自己定义自己的函数错误码和描述,还有就是有些函数执行成功的原因有多个,但程序需要对特定原因做处理的时候可以利用GetLastError来区分。

 5、代码实践: 本章内容不算多,故此就写个小程序争取把要点都覆盖住,该程序见下图(相比书上面的例子程序增加了些内容,主要是错误码结构的信息,以及用户定义错误码的试验)。【PS:模仿Windows内部的ErrorCode定义,可以建立自己的特定错误码定义表】

 

   Fig1-1:Error Code Look up

   

  Fig1-2 Customer Define Error Code

 OK ,这一章算是结束了。:D好像没有什么东西。

 

 

 

 

 

Windows via C/C++是一本经典的计算机编程教材,它是针对Windows操作系统的开发而撰写的。本书是第五版的中文版,主要介绍了使用C/C++语言进行Windows应用程序的开发。 首先,本书详细介绍了Windows操作系统的基本原理和结构。它解释了Windows系统的体系结构,包括进程管理、内存管理、文件系统、网络等方面的知识。通过对Windows的底层架构的深入理解,读者可以更好地理解Windows应用程序的工作原理。 其次,本书重点讲解了使用C/C++语言进行Windows开发的技巧和方法。它详细介绍了Windows编程的基本概念和技术,如窗口、消息循环、多线程等。同时,它也介绍了使用MFC(Microsoft Foundation Class)和WinAPIWindows Application Programming Interface)进行Windows开发的方法。读者可以通过学习这些知识,掌握Windows应用程序的开发技术。 最后,本书还介绍了一些高级主题,如COM(Component Object Model)、ActiveX、DirectX等。它通过实例和案例分析,帮助读者更深入地了解和应用这些技术。 总结来说,Windows via C/C++(5th)中文版是一本非常适合想要学习Windows应用程序开发的人的教材。它基于C/C++语言,通过讲解Windows操作系统的原理和结构,详细介绍了Windows开发的技巧和方法。通过阅读本书,读者可以获得丰富的知识和实际操作经验,为开发高质量的Windows应用程序奠定坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值