#include <windows.h>
int main()
{
int* i = (int*)malloc(sizeof(int));
*i = 5;
__try
{
free(i);
free(i);
}
__except
{
return -1;
}
return 0;
}
我想了解更多有关Windows SEH的信息。我的第一个测试程序给了我一些真正的麻烦。我查看了msdn文档,但我仍然不确定我的错误。当我尝试编译这个程序时,我收到以下错误:
error C2059: syntax error : '{'
error C2143: syntax error : missing ';' before '{'
都在第15行。
感谢。
答案 0 :(得分:4)
问题是__except
子句需要有一个表达式。有关完整示例,请参阅以下MSDN页面
http://msdn.microsoft.com/en-us/library/aa273608(VS.60).aspx
将始终执行处理程序的快速示例
__try {
// stuff
} __except (EXCEPTION_EXECUTE_HANDLER) {
// handler
}