如何在下面的僞代碼中捕獲靜態對象a
引發的異常,其中WndProc()
是Win32 API中的標準消息處理函數?如何捕獲在WndProc()函數中定義的靜態對象的異常?
class A
{
public:
class Exception{};
A() throw(Exception) { ... }
};
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam)
{
static A a;
switch(message)
{
case WM_CREATE:
...
break;
...
default:
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}
不要引發在窗口過程中無法處理的異常。消息循環sorta中的支持工作,但很麻煩。當您在64位版本的Windows上運行32位進程時,Windows傾向於吞噬異常。 – 2012-04-24 13:49:48
使用靜態指針,初始化爲NULL,並在調用WM_CREATE時創建類實例。 – 2012-04-26 02:58:09
謝謝。如果你回答這個問題,我很樂意接受它。 – Belloc 2012-04-26 14:21:50