CString ErrorMessageFromErrorCode(DWORD错误代码)
{
void * pMsgBuf = NULL;
:: FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
空值,
错误代码,
MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),
(LPTSTR)&pMsgBuf,
0,
空值);
CString结果;
如果(pMsgBuf)
{
结果=(LPTSTR)pMsgBuf;
LocalFree(pMsgBuf);
}
如果(result.Length()== 0)
结果= _T(“未知错误”);
返回结果;
}
当使用参数2调用时,此函数返回“系统找不到指定的文件”。用0xC1调用时,它返回“未知错误”。 Microsoft错误查找实用工具针对0xC1显示了此错误:“%1不是有效的Win32应用程序。”因此,当错误消息包含占位符时,我的功能不起作用。
有没有一种通用方法可以得到与错误查找相同的结果,而又不了解错误代码?
最佳答案
尝试将FORMAT_MESSAGE_IGNORE_INSERTS
添加到标志中。