我们一般在调用了一些API后都会用GetLastError来获得错误信息,但是信息都是Integer的,我们知道是什么意思么?
嘿嘿,是的,有msdn呀,当然还可以用FormatMessage函数来.
正好看了下Windows核心编程第一章有个例子,来用Delphi试一下.
主要用了FormatMessage函数,具体用法和注意事项就很多了,大家可以看MSDN了.

Unit UtMain;

Interface
Uses
Windows,
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
CxGraphics,
CxControls,
CxLookAndFeels,
CxLookAndFeelPainters,
CxContainer,
CxEdit,
DxSkinsCore,
DxSkinSeven,
CxGroupBox,
CxCheckBox,
CxTextEdit,
DxSkinsForm,
CxLabel,
Menus,
CxMemo,
StdCtrls,
CxButtons; Type
TForm3 = Class(TForm)
Cxlbl1: TcxLabel;
DxSkinController1: TdxSkinController;
CxtxtCode: TcxTextEdit;
CxchkHex: TcxCheckBox;
GrpDescription: TcxGroupBox;
BtnSearch: TcxButton;
CxmDescription: TcxMemo;
Procedure BtnSearchClick(Sender: TObject);
Procedure FormCreate(Sender: TObject);
Private
{ Private declarations }
DwCode: Cardinal;
SystemLocale: Cardinal;
Public
{ Public declarations }
End; Var
Form3: TForm3;
Implementation {$R *.dfm} Procedure TForm3.BtnSearchClick(Sender: TObject);
Var
B: Cardinal;
HLib: Cardinal;
Buf: PChar;
Begin
If CxchkHex.Checked Then
DwCode := StrToIntDef('$' + CxtxtCode.Text, )
Else
DwCode := StrToIntDef(CxtxtCode.Text, );
GetMem(Buf, );
Try
// 尝试获取一下
B := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, Nil, DwCode, SystemLocale,Buf, , Nil);
// 如果默认没有 查询下网络相关的
If B = Then
Begin
HLib := LoadLibraryEx('netmsg.dll', , DONT_RESOLVE_DLL_REFERENCES);
Try
Assert(HLib <> );
B := FormatMessage(FORMAT_MESSAGE_FROM_HMODULE, Pointer(HLib), DwCode,
SystemLocale, Buf, , Nil);
Finally
If HLib <> Then
FreeLibrary(HLib);
End;
End;
If (B <> ) Then
CxmDescription.Text := Buf
Else
CxmDescription.Text := '没有找到错误码的相关描述';
Finally
FreeMem(Buf);
End;
End; Procedure TForm3.FormCreate(Sender: TObject);
Begin
// 设置语言为默认
SystemLocale := MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT)
End; End.

http://blog.csdn.net/yanjiaye520/article/details/6694510

GetLastError来获得错误信息转成文本描述的更多相关文章

  1. 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_07-用户认证-认证服务查询数据库-解析申请令牌错误信息

    1.2.5.4 解析申请令牌错误信息 当账号输入错误应该返回用户不存在的信息,当密码错误要返回用户名或密码错误信息,业务流程图如下: 修改申请令牌的程序解析返回的错误: 由于restTemplate收 ...

  2. SVN错误信息汇总

    svn错误信息  # # Simplified Chinese translation for subversion package # This file is distributed under ...

  3. Extjs 表单验证后,几种错误信息展示方式

    今天要求对form表单验证,进行系统学习一下,故做了几个示例: Ext.onReady(function(){        var panel=Ext.create('Ext.form.Panel' ...

  4. Sharepoint2013:在页面上显示错误信息

    在sharepoint2013中我们需要修改以下三处的web.config,以显示错误信息 1, C:\inetpub\wwwroot\wss\VirtualDirectories\端口号\web.c ...

  5. DB2中错误信息说明

    DB2错误信息SQLCODE SQLSTATE (按sqlcode排序) .分类: db2数据库 2012-10-19 11:35 2942人阅读 评论(0) 收藏 举报 db2sql存储table数 ...

  6. odbc错误信息一览表

    ODBC 错误信息 根据 X/Open 和 SQL Access Group SQL CAE 规范 (1992) 所进行的定义,SQLERROR 返回 SQLSTATE 值.SQLSTATE 值是包含 ...

  7. 修改php.ini以达到 屏蔽错误信息

    那是因为php.ini中关闭了错误显示,将错误写成了文件,这是人为设置的结果,display_errors =on就好了. 不过不显示错误倒安全点,建议调试时打开,然后提供服务时关闭. 提供一点资料给 ...

  8. mtk的安卓手机刷机时出现的错误信息

    手机已成砖,用过好多工具都没刷回来,以下是用smart phone flash tool刷机时出现的错误信息 ---------------------------Smart Phone Flash ...

  9. Asp.net 程序部署问题——在应用程序级别之外使用注册为 allowDefinition='MachineToApplicati错误信息

    [转]在应用程序级别之外使用注册为 allowDefinition='MachineToApplicati 错误信息: ======================================== ...

随机推荐

  1. Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunching failed, see logs for details

    Android Studio 编译中断.... Error:Execution failed for task ':app:mergeDebugResources'. > Some file c ...

  2. 从苹果的appstore谈谈web前端那丝毫的追求

    献上链接:点击进入itunes打开页面,我们先找到App 的logo图比如这个图很简单的一个图标,估计多数人选择的是上传一张处理好圆角,border的图片作为app logo,但问题是苹果觉得,你们每 ...

  3. express框架目录结构

    . ├── app.js ├── bin │   └── www ├── node_modules │   ├── body-parser │   ├── cookie-parser │   ├── ...

  4. 在Azure Cloud Service中部署Java Web App(1)

    Microsoft Azure是一个开放的,灵活的云平台,除了对自家的.Net平台有良好的支持外,对于各种开源的软件,语言,工具,框架都有着良好的支持,比如Java,Php,Python等等,你可以使 ...

  5. C语言的本质(27)——C语言与汇编之计算机结构

    现代计算机都是基于冯·诺依曼或哈佛体系结构的,不管是嵌入式系统.个人电脑还是服务器.这种两种体系结构的主要特点是:CPU和内存是计算机的两个主要组成部分,内存中保存着数据和指令,CPU从内存中取指令执 ...

  6. 关于App的一些迷思以及一些动画效果开源库的推荐

    http://www.open-open.com/lib/view/open1427856817396.html

  7. E6全部刷机包

    此版本号基于R533_G_11.11.10P_GSZMCAUT679DA01B_LP064DA_T679DA_S005_E001_P002_R001_G004_1FF.sbf制作耳机接听或挂机正常内置 ...

  8. Spark里面的任务调度:离SparkContext开始

    SparkContext这是发达国家Spark入学申请,它负责的相互作用和整个集群,它涉及到创建RDD.accumulators and broadcast variables.理解力Spark架构, ...

  9. 代码混淆 GSON完满解决

    头疼的问题,json使用了google的gson三方包,可是混淆的时候出了问题 明明已经按照gson的官方文档,把混淆脚本加上去了,却还是出问题. 今天同事找到一篇博客,关于这个问题的: 我们是将js ...

  10. linux-telnet服务配置

    Telnet服务的配置:一.安装telnet软件包(通常要两个)1. telnet-client (或 telnet),这个软件包提供的是 telnet 客户端程序: 2. telnet-server ...