try ... catch() や __try ... __except() を使用できれば、そちらが簡単。 #include <stdio.h> #include <windows.h> LONG CALLBACK ExceptionHandler(EXCEPTION_POINTERS *ExceptionInfo) { printf("ExceptionHandler\n"); // c で次の命令へのアドレスを取得する方法が現在の所は不明。 ExceptionInfo->ContextRecord->Eip += 10; // 例外が発生した次の命令へ飛ばす return(EXCEPTION_CONTINUE_EXECUTION); } int main() { printf("null pointer exception\n"); SetUnhandledExceptionFilt