我有以下WM_GESTURE处理代码:
case WM_GESTURE:
{
GESTUREINFO gi;
ZeroMemory(&gi, sizeof(gi));
gi.cbSize = sizeof(gi);
BOOL bResult = GetGestureInfo((HGESTUREINFO)lParam, &gi);
BOOL bHandled = FALSE;
if (bResult){
// Gesture processing code is here, but it never gets here in release mode
}
else{
DWORD dwErr = GetLastError();
// Here it returns 87 in release mode
}
CloseGestureInfoHandle((HGESTUREINFO)lParam);
手势处理在调试模式下工作100%,但在发布模式下中断 - GetGestureInfo返回false,后续GetLastError调用返回87(ERROR_INVALID_PARAMETER)。
Documentation说这可能是因为没有正确设置gi.cbSize,但这似乎并非如此。
为什么?