为了指出错误,只需设置线程上的一个错误代码,令自己的函数返回合适值即可。使用函数SetLastError(DWORD);
使用GetLastError()得到上一个函数出错代码,($err,hr可直接在watch1中看到出错信息)
使用FormatMessage(...)将错误代码转换为字符串信息:
一个error lookup小程序:
voidCWindowsErrorLookupDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData();
LPVOID lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, m_errorInt, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),(LPTSTR)&lpMsgBuf,0, NULL);
// m_errorString.SetWindowText((LPCTSTR)lpMsgBuf);
m_errorS.Format(_T("%s"),(LPCTSTR)lpMsgBuf);
UpdateData(false);
LocalFree(lpMsgBuf);
//CDialogEx::OnOK();
}