if (!RegisterClass (&wndclass))
{
MessageBox ( NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}
{
MessageBox ( NULL, TEXT ("This program requires Windows NT!"),
return 0 ;
}
由於MessageBoxW是可在Windows 98环境下执行的几个Unicode函式之一,所以其执行正常。
当然,这段程式假定RegisterClass不会因为其他原因而呼叫失败,诸如WNDCLASS结构中lpfnWndProc栏位被设定成NULL之类的错误。GetLastError函式会帮助您确定在这样的情况下产生错误的原因。GetLastError是Windows中常用的函式,它可以在函式呼叫失败时获得更多错误资讯。不同函式的文件将指出您是否能够用GetLastError来获得这些资讯。在Windows 98中呼叫RegisterClassW时,GetLastError将传回120。在WINERROR.H中您可以看到,值120与识别字ERROR_CALL_NOT_IMPLEMENTED相等。您也可以在/Platform SDK/Windows Base Services/Debugging and Error Handling/Error Codes/System Errors - Numerical Order查看错误。
一些Windows程式写作者喜欢检查所有可能发生错误的函式呼叫的传回值。这么做确实有点道理,相信您也非常习惯在配置记忆体後检查错误。而许多Windows函式需要配置记忆体。例如,RegisterClass需要配置记忆体,以保存视窗类别的资讯。如此一来,您就应该要检查这个函式的执行结果。另一方面说来,如果由於RegisterClass