Có thể bắt lỗi trong số WindowProc
gọi lại không? try
/catch
không hoạt động. Có vẻ như __try
__except
và cũng ngoại lệ phần cứng (ví dụ: AV
) cũng không hoạt động.Ngoại lệ trong WindowProc
Cập nhật:
tôi đã tìm ra rằng thực sự này có thể ném ngoại lệ trong WindowProc
gọi lại và bắt nó với catch
khối bên ngoài WindowProc
. Đã kiểm tra và hoạt động trên Windows XP x86
. Tôi tìm thấy câu hỏi releated 64bit exceptions in WndProc silently fail Vấn đề dường như chỉ tồn tại trên Windows 7 x64
(và theo câu hỏi đó trên các phiên bản Windows x64 khác nữa).
Vì vậy, câu hỏi là có thể bằng cách nào đó để ném ngoại lệ trong WindowProc
và bắt nó với catch
chặn bên ngoài WindowProc
? Tôi đã cài đặt hotfix của microsoft, đặt DisableUserModeCallbackFilter
thành 1 trong sổ đăng ký và tốt nhất tôi nhận được là FATAL_USER_CALLBACK_EXCEPTION
, không phải ngoại lệ của tôi.
chức năng winapi không sử dụng ngoại lệ. Chúng được viết bằng C. – chris
Có thể xác định lỗi bên trong gọi lại WindowProc mà không có ngoại lệ không? – Demion
Chắc chắn, hãy gọi các chức năng từ đó, kiểm tra lỗi và sử dụng 'GetLastError' và tương tự. Tuyên truyền các kết quả nếu gọi từ một hàm được gọi trong 'WindowProc'. – chris