<Return[S]><Top>

SetErrorMode

Declare Function Api_SetErrorMode& Lib "kernel32" Alias "SetErrorMode" (ByVal wMode&)

Declare Function SetErrorMode Lib "kernel32" (ByVal wMode As Long) As Long

指定された種類の重大なエラーが発生したときに、システムに処理を任せるか、呼び出し側のアプリケーションが処理するかを設定する。

パラメータ
uMode
    プロセスのエラーモードを指定します。次の値の任意の組み合わせを指定する。

    値                                                           

動作                                                                                                                

    0

システム既定の処理を行い、どの場合でもエラーダイアログボックスを表示する。

    SEM_FAILCRITICALERRORS

 

システムは、致命的なエラーに関するメッセージボックスを表示せず、呼び出し側プロセスへそのエラーを送信する。

    SEM_NOALIGNMENTFAULTEXCEPT

 

 

RISC:メモリ整列の違反を自動的に修復し、アプリケーションにそのことを認識させない。呼び出し側プロセスとその子孫のプロセスに対して、このような修復を行う。
x86 プロセッサでは効果がなない。

    SEM_NOGPFAULTERRORBOX

 

システムは、一般保護違反メッセージボックスを表示しない。例外ハンドラを使って独自に一般保護(GP)違反を処理するデバッグアプリケーションでのみ、このフラグを設定するべきである。

    SEM_NOOPENFILEERRORBOX

 

システムは、ファイルが見つからなかった場合にメッセージボックスを表示せず、呼び出し側プロセスへそのエラーを返す。


戻り値
    以前のエラーモードビットフラグが返る。

解説
    各プロセスには 1 つのエラーモードが関連付けられていて、そのエラーモードは、アプリケーションが重大なエラーに応答する方法をシステム

    に伝える。子プロセスは、親プロセスのエラーモードを継承する。
    RISC:x86 以外の一部のプロセッサでは、整列していないメモリを参照すると、整列違反の例外が発生する。

    SEM_NOALIGNMENTFAULTEXCEPT フラグを使うと、そのような整列違反が発生したときに、システムが自動的に修復を行うか、ア

    プリケーションにそのことを通知するかを制御できる。
    MIPS:MIPS コンピュータでは、整列違反をシステムに自動的に修復させるには、アプリケーションは

    SEM_NOALIGNMENTFAULTEXCEPT フラグを明示的に指定して SetErrorMode を呼び出さなければならない。既定の設定では、整

    列違反が発生したときに、システムはアプリケーションへそのことを通知する。
    Alpha:ALPHA コンピュータでは、HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager レジストリハイ

    ブのEnableAlignmentFaultExceptions の値を次のように設定して、整列違反に対する動作を制御する。

    値        

意味                                                                                                                                    

    0

整列違反を自動的に修復する。これは既定である。

    1

整列違反をアプリケーションへ通知する。整列違反を自動的に修復させるには、SEM_NOALIGNMENTFAULTEXCEPT を指定して SetErrorMode を呼び出さなければならない。