GetLastError |
VB聲明 |
|
Declare Function GetLastError Lib "kernel32" Alias "GetLastError" () As Long |
|
說明 |
|
針對之前調(diào)用的api函數(shù),用這個(gè)函數(shù)取得擴(kuò)展錯(cuò)誤信息(在vb里使用:在vb中,用Err對象的GetLastError屬性獲取GetLastError的值。這樣做是必要的,因?yàn)樵赼pi調(diào)用返回以及vb調(diào)用繼續(xù)執(zhí)行期間,vb有時(shí)會(huì)重設(shè)GetLastError的值) |
|
返回值 |
|
Long,由api函數(shù)決定。請參考api32.txt文件,其中列出了一系列錯(cuò)誤常數(shù);都以ERROR_前綴起頭。常用的錯(cuò)誤代碼見下表 |
|
ERROR_INVALID_HANDLE |
無效的句柄作為一個(gè)參數(shù)傳遞 |
ERROR_CALL_NOT_IMPLEMENTED |
在win 95下調(diào)用專為win nt設(shè)計(jì)的win32 api函數(shù) |
ERROR_INVALID_PARAMETER |
函數(shù)中有個(gè)參數(shù)不正確 |
注解 |
|
GetLastError返回的值通過在api函數(shù)中調(diào)用SetLastError或SetLastErrorEx設(shè)置。函數(shù)并無必要設(shè)置上一次錯(cuò)誤信息,所以即使一次GetLastError調(diào)用返回的是零值,也不能擔(dān)保函數(shù)已成功執(zhí)行。只有在函數(shù)調(diào)用返回一個(gè)錯(cuò)誤結(jié)果時(shí),這個(gè)函數(shù)指出的錯(cuò)誤結(jié)果才是有效的。通常,只有在函數(shù)返回一個(gè)錯(cuò)誤結(jié)果,而且已知函數(shù)會(huì)設(shè)置GetLastError變量的前提下,才應(yīng)訪問GetLastError;這時(shí)能保證獲得有效的結(jié)果。SetLastError函數(shù)主要在對api函數(shù)進(jìn)行模擬的dll函數(shù)中使用,所以對vb應(yīng)用程序來說是沒有意義的 |