ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

GetLastError でエラーチェック 

更新 : 2010/03/27

 



解説:
Win32API の関数は、失敗したときに SetLastError 関数を呼び出します。戻り値は、0、NULL、-1 のいずれかが返ります。この値は、 GetLastError 関数を使って取得できます。
エラーが起きそうな場所に、GetLastError を記述してチェックすると良いでしょう。

この関数は、別の API 関数が呼び出されると、エラーコードがクリアされますので、エラーが発生した直後に実行する必要があります。

使用例:
アプリケーションを起動して、存在しないドライブの
ディスクサイズを取得しています。システムはエラーを出力しますので、それを取得しています。

コンポーネントは Button を配置するだけです。

Button1 の OnClick イベントで、存在しないドライブのディスクサイズを GetDiskFreeSpace 関数で取得します(GetDiskFreeSpace 関数の説明は特にしていませんので、関心のある方は調べてみてください)。
エラーで出ますので、 GetLastError 関数を使って、SetLastError 関数に保存された値を取得します。

SysErrorMessage 関数も参考にしてください。

//-------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    DWORD s, b, f, t;

    // 存在しないドライブのディスクサイズを取得
    GetDiskFreeSpace("Z:\\", &s, &b, &f, &t); 

    // エラーが発生していない場合、0 を返す
    if (GetLastError != 0) { 
        ShowMessage("エラーが発生しました。");
    }
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.