第一章 程序员必读
1.1定义自己的错误代码
若你编写了一个希望其他人调用的函数,你的函数可能因为这样或那样的原因而运行失败,你必须向函数的调用者说明它已经运行失败。若要指明函数运行失败,只需要设定线程的最后的错误代码,然后让你的函数返回FALSE、INVALID_HANDLE_VALUE、NULL或者返回任何合适的信息。可以用Viod SetLastError(DWORD dwErrCode)设定线程的最后错误代码;
1.2 ErrorShow示例小程序
FormatMessage函数的用法
//获取错误代码
DWORD dwError = GetDlgItemInt(hwnd , IDC_ERRORCODE , NULL , FALSE);
HLOCAL hlocal = NULL ; //创建存放错误文本的缓冲区并初始化;
//获取错误代码的文字描述
BOOL fOK = ForMatMessage(
FORMAT_MASSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER,
NULL , dwError , MAKELANGID(LANG_ENGLISH , SUBLANG_ENGLISH_US),
(LPTSTR) &hlocal , 0 , NULL);
...........
if (hloca != NULL)
{
SetDlgItemText(hwnd , IDC_ERRORTEXT , (PCTSTR) LocalLock(hlocal) );
LocalFree(hlocal);
}
else
{
SetDlgItemText(hwnd , IDC_ERRORTEXT , TEXT("Error number not found") );
}
当调用FormatMessage函数时,传递了FORMAT_MESSAGE_FROM_SYSTEM标志。该标志告诉FormatMessage函数,我们想要系统定义的错误代码的字符串。还传递FORMAT_MESSAGE_ALLOCATE_BUFFER标志,告诉该函数为错误代码的文本描述分配足够大的内存块。该内存块的句柄将hlocal变量中返回。第三个参数指明想要查找的错误代码的号码,第四个参数指明想要文本描述使用什么语言。
2004年11月9日