前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows核心编程第一章.错误处理

Windows核心编程第一章.错误处理

作者头像
IBinary
发布2019-05-25 16:08:03
4760
发布2019-05-25 16:08:03
举报
文章被收录于专栏:逆向技术逆向技术

Windows核心编程第一章,错误处理.

一丶错误处理

1.核心编程学习总结

不管是做逆向,开始做开发.在Windows下.你都需要看一下核心编程这本书.这本书确实写得很好.所以自己在学习这本书的同时,也把自己所学的知识进行 总结,以及巩固.

2.常见的Windows函数返回类型总结

数据类型 作用

代码语言:javascript
复制
VOID    如果是Void表示函数不可能失败.极少数windows函数会返回void
BOOL    表示这个函数会有失败情况.0失败.否则就是非0.但是一般都会使用TRUE FALSE来判断.
HANDLE  Windows中的句柄类型.返回值同创为NULL.否则的话HANDLE将标识一个可以操纵的对象.有些函数会返回INVALID_HANDLE_VALUE来表示

具体要查看MSDN文档看看对函数的返回值要求.

PVOID 如果失败返回NULL,否则将会是一个void *的地址. LONG/DWORD 这种类型也很多.返回值通常是一个LONG(long)类型或者DWORD(unsigned int)类型的值.如果返回值是这两个.那么要仔细检查出现的错误.

3.错误代码获取设置格式化输出

错误代码获取是一个Windows提供的API函数. 函数名称/圆形 作用

代码语言:javascript
复制
DWORD WINAPI GetLastError(void)
    返回值: 返回调用线程之后的错误代码调用成功则返回ERROR_SUCESS
void WINAPI SetLastError(
  _In_ DWORD dwErrCode
);
    传入一个DWORD错误值进行设置
DWORD FormatMessage( 
DWORD dwFlags, 
LPCVOID lpSource, 
DWORD dwMessageId, 
DWORD dwLanguageId, LPTSTR lpBuffer, DWORD nSize, va_list *Arguments ); 

根据GetlastError获取的错误代码值.进行格式化输出.自动匹配错误码代表的意思.

4.调试小技巧

如果你使用VC++或者VS编译器,你可以在监视窗口输入 @err,hr 这个命令.那么程序在调试的时候会自动获取API的错误代码. 如果调用的API没有错误,就是返回0 也就是说ERROR_SUCESS 否则则就会返回错误代码.这个错误代码可以用工具查看. 当然,你可以查询MSDN. MSDN上有介绍GetLastError配合ForMatMessage来打印错误代码.

5.错误代码查找工具的使用

VS编译器还提供了了错误代码查看工具.我们可以输入那么就会显示错误代码代表的什么意思.

VS2013 - 工具 - 错误查找 如下图所示:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Windows核心编程第一章,错误处理.
    • 一丶错误处理
      • 1.核心编程学习总结
      • 2.常见的Windows函数返回类型总结
      • 3.错误代码获取设置格式化输出
      • 4.调试小技巧
      • 5.错误代码查找工具的使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档