compile error about destructor

G

George2

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
 
R

Ron Natalie

George2 wrote:

1>d:\visual studio 2008\projects
\test_exception1\test_exception1\main.cpp(35) : error C2712: Cannot
use __try in functions that require object unwinding
This has nothing to do with C++ as discussed in this group.
Try a group with MICROSOFT in it's name.

However, that being said, it looks quite obvious from the error that
__try can't handle having any variables that need C++ destruction
semantics to be invoked.

You can map structured exceptions to normal C++ extensions (it takes
a few steps). Again either read the farking manual or go to the
appropraite group.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,962
Messages
2,570,134
Members
46,692
Latest member
JenniferTi

Latest Threads

Top