1 string GetErroMessage(DWORD dwError) 2 { 3 HLOCAL hLocal; 4 hLocal=NULL; 5 BOOL bFun; 6 HMODULE hDll=LoadLibraryEx(TEXT("netmsg.dll"),NULL,DONT_RESOLVE_DLL_REFERENCES); 7 bFun=FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_ALLOCATE_BUFFER,NULL,dwError,MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),(PTSTR)&hLocal,0,NULL); 8 if(!bFun) 9 { 10 11 if(!hDll) 12 { 13 FormatMessage(FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_FROM_SYSTEM,hDll,dwError,MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),(PTSTR)&hLocal,0,NULL); 14 FreeLibrary(hDll); 15 } 16 } 17 18 if(hLocal!=NULL) 19 { 20 char temp[6]; 21 itoa(dwError,temp,10); 22 string str("错误代码 "); 23 str += temp; 24 str += ":"; 25 str +=(PTSTR)LocalLock(hLocal); 26 return str; 27 } 28 29 }
测试:
1 #include <iostream> 2 #include <winsock2.h>//2.0版本 3 using namespace std; 4 #include <string> 5 6 int main(void) 7 { 8 9 string strErroMsg; 10 11 12 HINSTANCE hInstance=LoadLibrary("d.dll"); 13 if (hInstance == NULL) 14 { 15 cout<<GetErroMessage(GetLastError());//错误代码 126:找不到指定的模块。 16 } 17 18 }
获取错误信息的C++实现
本文介绍了一段用于从Windows系统中获取错误信息的C++代码实现。该方法通过调用FormatMessage函数来获得针对特定错误代码的中文描述信息,并结合错误代码本身形成完整的错误信息字符串。
6141

被折叠的 条评论
为什么被折叠?



