Hello everyone,


When change from __try to try, and __except(GetExceptionCode()) to catch(...), compile can pass.

Compile error and code are,

1>Compiling...
1>main.cpp
1>d:\visual studio 2008\projects\test_exception1\test_exception1\main .cpp(30) : warning C4509: nonstandard extension used: 'main' uses SEH and 'foo1' has destructor
1> d:\visual studio 2008\projects\test_exception1\test_exception1\main .cpp(28) : see declaration of 'foo1'
1>d:\visual studio 2008\projects\test_exception1\test_exception1\main .cpp(35) : error C2712: Cannot use __try in functions that require object unwinding

Code:
#include <iostream>
#include <excpt.h>
#include <windows.h>

using namespace std;

class Foo
{
public:
	Foo()
	{
		cout << "constructing Foo" << endl;
	}

	virtual ~Foo()
	{
		cout << "destrucing Foo" << endl;
	}

};

int main()
{
	int* address = NULL;

	__try{

		Foo foo1;
		(*address) = 1024;
	} __except (GetExceptionCode())
	{
		cout << "access violation caught" << endl;
	}
	return 0;
}

regards,
George