Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > 《WINDOWS核心编程》读书笔记--第1章:对程序错误的处理
【标  题】:《WINDOWS核心编程》读书笔记--第1章:对程序错误的处理
【关键字】:WINDOWS,--
【来  源】:http://blog.csdn.net/coordinate/archive/2006/08/29/1137373.aspx

《WINDOWS核心编程》读书笔记--第1章:对程序错误的处理

Your Ad Here

总结:
Win32API,通常有以下有种返回值:
(1)VOID,表示对其的调用 不可能失败,这种API很少;
(2)BOOL;
(3)HANDLE,该返回值用来标识一个对象,失败的时候返回INVALID_HANDLE_VALUE(-1)或NULL;
(4)PVOID,标识内存块的地址,失败的时候返回NULL;
(5)LONG/DWORD,通常用来返回一个数量,失败的时候返回0或-1.
在内部,当函数检测到一个错误的时候,它将使用线程本地存储器机制,将相应的错误代码号与调用线程联系起来,可以用:
DWORD GetLastError();
得到该线程的最后一个错误。通常,一个函数成功后,不会改写错误代码,但也有例外,如,CreateEvent创建一个命名的事件对象时,如果存在同名对象,将返回一个复制的句柄,也是成功运行,这个时候用GetLastError确定 一些其他信息。还有,Win98中由于历史的原因有些API不能设置错误代码。
在WinError.h中定义了错误代码和相应的英文描述。
用函数:
DWORD FormatMessage(DWORD dwFlags, //FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_ALLOCATE_BUFFER是从系统中取错误信息的文本,并由该函数       //为字符串分配内存
 LPCVOID lpSource,//取错误消息时可以忽略它
 DWORD dwMessageID,//错误号
 DWORD dwLanguageID, //默认指定0即可
 PTSTR pszBuffer,
 DWORD dwSize,//不由函数分配内在时指定缓冲的大小
 va_list *Atguments);
可以得到错误代码对应的文本。

也可以用下面的函数:
VOID SetLastError(DWORD dwError);
设置最后错误代码,这个值可以是系统定义,也可以是自定义的。错误代码是有讲究的:30-31位指定错误程度:成功-供参考-警告-错误;29位为1是自定义的;28位为0;16-27位设备代码;0-15位异常代码。

VC的调试器支持参最后错误代码的跟踪。在Watch窗口(在断点位停止时),在Watch窗口的一行的Name中输入“@err,hr”,在这里就能跟踪显示最后错误代码。  

《WINDOWS核心编程》读书笔记--第2章:Unicode:【上一篇】
防止应用程序多次执行(在进程里只一个):【下一篇】
【相关文章】
  • 《WINDOWS核心编程》读书笔记--第2章:Unicode
  • 《WINDOWS核心编程》读书笔记--第4章:进程的基础
  • 《GOF设计模式》学习笔记--Command命令模式
  • 让我们一起来对VSTS扩展开发吧------制作自己的VSTS模版----第四节 VSTS团队项目的真删除
  • 通用线程 -- 新 Linux 2.4 内核中的软件RAID,第一部分
  • MPLS故障诊断---学习笔记
  • 转载-----RFC中文翻译 RFC1--RFC3093(不错的东东)一
  • 转载-----RFC中文翻译 RFC1--RFC3093(不错的东东)二
  • 转载-----RFC中文翻译 RFC1--RFC3093(不错的东东)三
  • 转载-----RFC中文翻译 RFC1--RFC3093(不错的东东)四
  • 【随机文章】
  • solaris更改 hostname
  • 托盘程序注意事项
  • 特征提取
  • 关于细分和SMOOTH的问题
  • 走近asp.net
  • 在ASP.NET中进行文件处理(2)
  • 用Eclipse RCP & ECF 实现 Google Talk客户端
  • 6.1在代码段中使用数据
  • 看宽带路由器的市场要点
  • SNW2006:EMC正式发布CLARiiON AX150和AX150i
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.