2011-08-01 8 views
2

私はVisual C++コンパイラ&を使用しています。例外処理に関する私の調査では、Visual C++コンパイラでサポートされていない多くの機能がありました。例外の制御は です。関数から投げることができます。 terminate()set_terminate()を使用して、機能を変更できませんでした。 ?もしそうなら はそれが& ...)あまりにも(終了を変更するためのビジュアルC++のための仕様である、そして誰もが、なぜMicrosoftはそのコンパイラでこれらの仕様を作成していることを説明することができます...: - ?Xset_terminate関数の設定について

+0

どうしたのですか?あなたは 'set_terminate()'がそこにあるのはなぜですか? – sharptooth

+0

@sharptooth:私はset_terminate()を使ってterminate()を設定しようとしていましたが、失敗しました...理由について質問していました.. – nobalG

+1

さて、あなたは正確に何をしていますか? – sharptooth

答えて

0

これを試してみましたか?

// set_terminate example 
#include <iostream> 
#include <exception> 
#include <cstdlib> 
using namespace std; 

void myterminate() { 
    cerr << "terminate handler called\n"; 
    abort(); // forces abnormal termination 
} 

int main (void) { 
    set_terminate (myterminate); 
    throw 0; // unhandled exception: calls terminate handler 
    return 0; 
} 

VSから実行しようとしないでください。コマンドラインからコンパイルして実行します。

+0

IDEで動作しますが、デバッグモードでは動作しません。 (I.E.デバッグメニューを選択 - >デバッグせずに起動するかCtrl + F5を押してください) –

+1

VS2008を使用していて、リリースモードでも動作しません。 他の理由が考えられますか(デバッグ - >例外の設定など)? 少なくともVS2008の外で動作します... –

関連する問題