CString ErrorMessageFromErrorCode(DWORD errorCode) { void* pMsgBuf = NULL; ::FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, errorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &pMsgBuf, 0, NULL); CString result; if (pMsgBuf) { result = (LPTSTR) pMsgBuf; LocalFree(pMsgBuf); } if (result.Length() == 0) result = _T("Unknown error"); return result; }
当带参数2调用,这个函数返回“系统找不到指定的文件。”当用0xC1调用时,它返回“未知错误”。 Microsoft错误查找实用程序显示0xC1:“%1不是有效的Win32应用程序”。所以,当错误信息包含占位符时,我的功能不起作用。 是否有通用的方式来获得相同的结果作为错误查找,不知道任何关于错误代码?的FormatMessage用占位符
参数2?你的意思是FORMAT_MESSAGE_FROM_SYSTEM?看起来它正在工作,并且您试图打开或删除以前不存在的文件。 – AJG85 2011-05-31 15:51:13