0

プログラムで例外を使用したい。しかし、私のプログラムにはカスタム エントリポイントがあり、CRT (C ランタイム) を使用していません。

私のプログラムは次のように簡単です:

    MessageBox(NULL, L"例外がスローされます", L"OK", MB_ICONEXCLAMATION | MB_OK);
    試す {
      123を投げます。
    }キャッチ(...){
      MessageBox(NULL, L"例外がスローされました", L"OK", MB_ICONEXCLAMATION | MB_OK);
    }

標準のエントリポイントと CRT を使用すると、すべて正常に動作します。しかし、プログラムの EP を変更すると、関数 _CxxThrowException の呼び出し中に「アクセス違反」というエラーでクラッシュします。

クラッシュの詳細なスクリーンショットを作成しました: http://vs712.server4u.cz/exception.png

このエラーの原因は何ですか? CRT を使用せずに例外を使用する回避策はありますか?

ありがとう。

4

1 に答える 1

-4

プログラムが Visual C++ でコンパイルされている場合。CRT を使用する必要があります。コンパイラが何をするかわかりません。コンパイラは、コード内の任意の場所で任意の CRT 関数を呼び出すことができます。

本当に CRT を使いたくない場合。次に、別のコンパイラまたはアセンブリなどの別の言語を使用します。

于 2013-07-09T04:30:03.717 に答える