FormatMessage的用法

转载 2012年03月29日 20:58:53


http://blog.163.com/fifa___2008/blog/static/23948589200885114812139/

FormatMessage的用法

2008-09-05 11:48:12| 分类: c/c++/vc | 标签: |字号 订阅

根据一个错误码返回一个错误讯息

DWORD FormatMessage(

DWORD dwFlags,

LPCVOID lpSource,

DWORD dwMessageId,

DWORD dwLanguageId,

LPTSTR lpBuffer,

DWORD nSize,

va_list* Arguments

);

dwFlags:

# FORMAT_MESSAGE_ALLOCATE_BUFFER // 此函数会分配内存以包含描述字串。

# FORMAT_MESSAGE_FROM_SYSTEM, // 在系统的id映射表中寻找描述字串

# FORMAT_MESSAGE_FROM_HMODULE // 在其他资源模块中寻找描述字串

# FORMAT_MESSAGE_FROM_STRING // 消息ID是个字串,不是个DWORD

通常为:FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM

lpSource:

# 指定了FORMAT_MESSAGE_FROM_HMODULE的话,此参数表示模块的HANDLE

# 指定了FORMAT_MESSAGE_FROM_STRING的话,此参数表示id字串

通常为:NULL

dwMessageId:

消息ID;如果指定FORMAT_MESSAGE_FROM_STRING,将被忽略。

dwLanguageId:

消息描述所用的语言

通常为:0表示自动选择

lpBuffer:

#如果未指定FORMAT_MESSAGE_ALLOCATE_BUFFER,则为自己提供的缓冲区

#否则为系统LocalAlloc分配,需要被用户LocalFree

nSize:

#如果未指定FORMAT_MESSAGE_ALLOCATE_BUFFER,则为自己提供的缓冲区大小

#否则为系统LocalAlloc分配之最小缓冲区大小

Arguments:

通常不使用

下面是个例子:

TCHAR* buffer;

DWORD error = ERROR_DS_OBJ_STRING_NAME_EXISTS;

::FormatMessage(

FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,

NULL,

error,

0,

( LPTSTR )&buffer,

0,

NULL );

::MessageBox( NULL, buffer, NULL, 0 );

LocalFree( buffer );  

GetLastError和FormatMessage的简单使用

当调用一些Win32的函数的时候,出错的信息要通过GetLastError和FormatMessage函数来获取出错信息 DWORD dwErrorCode = ::GetLastError();...
  • u013005025
  • u013005025
  • 2016年07月29日 09:48
  • 732

《解读Windows 核心编程》 之 FormatMessage()的用法

FormatMessage是一个Windows API函数。它的功能就是将GetLastError函数得到的错误信息(这个错误信息是数字代号)转化成字符串信息的函数。 DWORD WINAPI F...
  • huangbangqing12
  • huangbangqing12
  • 2014年04月21日 10:03
  • 1528

FormatMessage 用法

//dwError 是 GetLastError () 返回值 CString s;  GetDlgItemText(IDC_EDIT1,s);//获取控件值 DWORD dwError = a...
  • wangping19
  • wangping19
  • 2013年03月18日 15:48
  • 289

FormatMessage 格式化 GetLastError 获取的错误代码

void FormatErrCodeMessage(LPCTSTR lpszFunction, DWORD dwErrorCode) { // Retrieve the system er...
  • zgl7903
  • zgl7903
  • 2012年07月28日 11:38
  • 2422

FormatMessage 使用详解

本文翻译自MSDN FormatMessage函数的功能是格式化一个消息字符串。函数需要一个消息定义(message definition)作为输入。这个消息定义可以通过一个缓冲区或一个已经加载了...
  • zhaoxiatengkong_1
  • zhaoxiatengkong_1
  • 2013年08月15日 20:55
  • 1817

C#中调用FormatMessage API

FormatMessage是WINDOWS提供的一个API,用来获取调用Windows API时返回的错误代码对应的文字信息,以前在VB下用过,但是在C#中还没用到,主要是不太了解Windows AP...
  • testcs_dn
  • testcs_dn
  • 2013年03月16日 12:25
  • 1509

FormatMessage的用法

根据一个错误码返回一个错误讯息DWORD FormatMessage(    DWORD dwFlags,    LPCVOID lpSource,    DWORD dwMessageId,    ...
  • huainian4
  • huainian4
  • 2011年01月18日 11:11
  • 99

FormatMessage函数的用法

FormatMessage函数   原文:http://www.cppblog.com/koople/archive/2009/12/03/102367.aspx 在《windows核心编程...
  • hemeinvyiqiluoben
  • hemeinvyiqiluoben
  • 2013年09月23日 09:14
  • 553

FormatMessage的用法

根据一个错误码返回一个错误讯息DWORD FormatMessage(    DWORD dwFlags,    LPCVOID lpSource,    DWORD dwMessageId,    ...
  • jinjin520
  • jinjin520
  • 2008年10月27日 18:50
  • 1313

FormatMessage 的用法

根据一个错误码返回一个错误讯息,返回值类型为BOOLDWORD FormatMessage(    DWORD dwFlags,    LPCVOID lpSource,    DWORD d...
  • skyaegean
  • skyaegean
  • 2010年07月07日 18:13
  • 359
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:FormatMessage的用法
举报原因:
原因补充:

(最多只允许输入30个字)