1
#include <windows.h>

int main()
{

    int* i = (int*)malloc(sizeof(int));
    *i = 5;

    __try
    {
        free(i);
        free(i);
    }
    __except
    {
        return -1;
    }


return 0;
}

私はウィンドウズSEHについてもっと学ぼうとしています。私の最初のテストプログラムは私にいくつかの本当の問題を与えています。私はmsdnのドキュメントを見ましたが、何が間違っているのかまだよくわかりません。このプログラムをコンパイルしようとすると、次のエラーが発生します。

error C2059: syntax error : '{'
error C2143: syntax error : missing ';' before '{'

両方とも15行目。

ありがとう。

4

1 に答える 1

4

問題は、__except句に式が必要なことです。完全なサンプルについては、次のMSDNページを参照してください。

http://msdn.microsoft.com/en-us/library/aa273608(VS.60).aspx

常にハンドラーを実行する簡単な例

__try {
  // stuff
} __except (EXCEPTION_EXECUTE_HANDLER) {
  // handler
}
于 2010-06-10T15:42:06.290 に答える