FormatMessage

王朝百科·作者佚名  2010-03-12  
宽屏版  字体: |||超大  

FormatMessage功能就是将GetLastError得到的错误信息(这个错误信息是数字代号)转化成字符串信息的函数

FormatMessage()

函数FormatMessage声明如下:

WINBASEAPI

DWORD

WINAPI

FormatMessageA(

DWORD dwFlags,//错误信息类型标志

LPCVOID lpSource,//指定本地信息定义 其依赖于第一个参数的设置

DWORD dwMessageId,//指定被请求的消息标示,如果dwFlags设置为FORMAT_MESSAGE_FROM_STRING 这个参数将被忽略

DWORD dwLanguageId,//指定被请求的消息的语言标示

LPSTR lpBuffer,//用来保存格式话后的消息字符串的地址

DWORD nSize,//如果第一个参数为指定FORMAT_MESSAGE_ALLOCATE_BUFFER 这个参数就是字符串的最大长度

va_list *Arguments

);

WINBASEAPI

DWORD

WINAPI

FormatMessageW(

DWORD dwFlags,

LPCVOID lpSource,

DWORD dwMessageId,

DWORD dwLanguageId,

LPWSTR lpBuffer,

DWORD nSize,

va_list *Arguments

);

#ifdef UNICODE

#define FormatMessage FormatMessageW

#else

#define FormatMessage FormatMessageA

#endif // !UNICODE

调用函数的例子如下:

#001 //系统错误信息提示。

#002 //蔡军生 2007/11/28 QQ:9073204 深圳

#003 void TestErrorInfo(void)

#004 {

#005 //进行出错。

#006 if (!CreateDirectory(_T("c:\"),0))

#007 {

#008 TCHAR szBuf[128];

#009 LPVOID lpMsgBuf;

#010 DWORD dw = GetLastError();

#011

#012 FormatMessage(

#013 FORMAT_MESSAGE_ALLOCATE_BUFFER |

#014 FORMAT_MESSAGE_FROM_SYSTEM,

#015 NULL,

#016 dw,

#017 MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),

#018 (LPTSTR) &lpMsgBuf,

#019 0, NULL );

#020

#021 wsprintf(szBuf,

#022 _T("%s 出错信息 (出错码=%d): %s"),

#023 _T("CreateDirectory"), dw, lpMsgBuf);

#024

#025 LocalFree(lpMsgBuf);

#026

#027 //输出提示。

#028 OutputDebugString(szBuf);

#029 }

#030

#031 }

调用后输出下面的提示信息:

CreateDirectory 出错信息 (出错码=5): 拒绝访问。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有