原文: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
}