error C2712: Cannot use __try in functions that require object unwinding

原文:http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/42985583-36fb-4e14-8642-bd837aac0727

 

I have a code that is called on a pointer that may be invalid (I have no control over its value):

 

__try
{
  CString str = (LPCTSTR)wParam;

  //Work with 'str' now
}
__except(1)
{
  //Memory fault
}

 

But when I try to use it in a MFC project, it gives me this error:

error C2712: Cannot use __try in functions that require object unwinding

 

 

解决方法:

__try
{
  DoStuffWithWParam(wParam);
}
__except(1)
{
  //Memory fault
}

void DoStuffWithWParam(WPARAM wParam) {

CString str = (LPCTSTR)wParam;

  //Work with 'str' now
}

你可能感兴趣的:(C++,error)