|
||
解説: 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("エラーが発生しました。"); } } //------------------------------------------------------------------- |