《Windows via C/C++》学习笔记(一):Error handling

1. 介绍了Windows函数的几种返回值:

类型

说明

VOID

函数不能失败

BOOL

函数失败时返回0;成功时返回非0。可测试是否为FALSE

HANDLE

函数失败时通常返回NULL(即0),亦有可能为INVALID_HANDLE_VALUE(即-1);成功则为相应的句柄

PVOID

函数失败时通常返回NULL(即0);成功则为数据块所在的内存地址

LONG/DWORD

函数失败时通常返回0或-1,具体参见Platform SDK文档

 

2. 相关函数

DWORD GetLastError() 

· 该函数通过线程局部存储Thread-local storage)机制获得线程当前的错误代号。

· 必须在Windows函数失败后立即调用该函数,否则其错误代号有可能被另一个函数调用结果所覆盖,Windows函数成功时调用GetLastError将返回ERROR_SUCCESS。

· 即使某个Windows函数运行成功,亦可通过GetLastError获得一些额外的信息。

· Visual studio可以在监视器上设置“$err,hr”监视GetLastError的返回值。

 

DWORD FormatMessage(

DWORD dwFlags,

LPCVOID pSource,

DWORD dwMessageId,

DWORD dwLanguageId,

PTSTR pszBuffer,

DWORD nSize,

Va_list *Arguments

);

· 该函数将错误代号转换为相应的文字表述。

· 支持多语言(dwLanguage)。

· 支持DLL导入(pSource)。

 

3. 自定义错误号

错误代号为一32位整形数,其第29位若为0则为微软定义的错误代号;为1则为雍和自定义,具体详见第二十四章。

转载于:https://www.cnblogs.com/alonecat06/archive/2012/09/15/2686861.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值