全然更新しないブログ
HSPメモ帳
システムエラーメッセージ取得
システムエラーの取得
用途 デバッグでのエラーメッセージ取得。 特定のシステムエラーの数値からメッセージ取得。
/* modGetError --------------------------------------------------- * GetError Win32 API GetLastError()の戻り値取得 * GetErrorStr 現在のエラーメッセージの文字列取得 * GetErrorStr2 任意のエラーメッセージの文字列取得 */ #module modGetError #uselib "kernel32.dll" #cfunc FormatMessage "FormatMessageA" int,int,int,int,var,int,int #cfunc GetLastError "GetLastError" #defcfunc GetError return GetLastError() /* int e 任意のエラーメッセージの値 * int bMaxWidth メッセージの改行: 0 無視: 1 */ #defcfunc GetErrorStr2 int e, int bMaxWidth sdim strErr,260 : ret = 0x1200 if( bMaxWidth ) : ret = 0x12ff ret = FormatMessage(ret, 0, e, 0, strErr, 260, 0) return strErr #defcfunc GetErrorStr return GetErrorStr2( GetLastError(), 1) #global /* end of module ----------------------------------------------- */ #uselib "user32.dll" #cfunc GetWindowLong "GetWindowLongA" int,int #func SetWindowLong "SetWindowLongA" int,int,int *main // 0~2000のエラーメッセージを取得 sdim bufErr, 15000 repeat 2000 strTmp = GetErrorStr2(cnt, 0) if(strTmp != "" ) : bufErr += strf("%04d : ", cnt) + strTmp loop screen 0, 360, 100 : title "0~2000のエラーメッセージを表示" font "", 12 : objmode 2 pos 10, 14 : mes "エラー番号:" e = "" : pos 80, 10 : input e, 60, 20 SetWindowLong objinfo(0,2), -16, GetWindowLong(objinfo(0,2), -16) | 0x2002 pos 160, 10 : objsize 180,20 : button "エラーメッセージ取得", *GetErrorMessage pos 0, 40 : mesbox bufErr, 360, 60, 0 stop *GetErrorMessage title "" + int(e) + "のエラーメッセージを表示" objprm 2, GetErrorStr2(int(e), 0) : objprm 0, "" stop |
コメント ( 0 ) | Trackback ( 0 )
« HSPプログラム... | oncmd » |
コメント |
コメントはありません。 |
コメントを投稿する |