VC2010 _com_error 返回的错误信息


 1 CString GetComError(const _com_error& e)
 2 {
 3     CString sMsg;
 4     sMsg.Format(
 5         _T("HRESULT: 0x%08lx; Error: %s"),
 6         e.Error(),
 7         e.ErrorMessage()
 8         );
 9 
10     if(e.ErrorInfo())
11     {
12         sMsg += TEXT("\nSource: ") + CString((LPCTSTR)e.Source()) +
13             TEXT("; Description: ") + CString((LPCTSTR)e.Description());
14     }
15 
16     return sMsg;
17 }


注意上面红色的地方,要进行数据类型转换,否则会出现乱码。

例如:VC2010 用ADO 连接数据库时,e.Description()前一定要加(LPCTSTR)

 1     try
 2     {
 3         m_pConnection->Open((_bstr_t)lpszConnectString,"","",adModeUnknown);
 4     }
 5     catch (_com_error &e)
 6     {
 7         m_strErrorString.Format("%s:%s",e.ErrorMessage(),(LPCTSTR)e.Description());
 8         AfxMessageBox(m_strErrorString);
 9         return false;
10     }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM