更正:
上面的catch 改为case (:

解决方案 »

  1.   

    switch(...)
    {
    catch  1:
       {
           int i=...//wrong!
       }
    ...
    }
      

  2.   

    楼上这位大哥这样或者
    把int i;定义放到switch外面。
      

  3.   

    大家不妨试试下面代码,是WIN32 SDK 中的
    case WM_RBUTTONDOWN:
    wmId    = LOWORD(lParam); 
    wmEvent = HIWORD(lParam); 
    HMENU hMenu;
    hMenu=GetSystemMenu(hWnd,TRUE);
    TrackPopupMenu(hMenu,TPM_LEFTALIGN | TPM_RIGHTBUTTON,100,100,0,hWnd,NULL);
    break;
    改成下面的后就编译出错
    case WM_RBUTTONDOWN:
    wmId    = LOWORD(lParam); 
    wmEvent = HIWORD(lParam); 
    HMENU //hMenu;
    hMenu=GetSystemMenu(hWnd,TRUE);
    TrackPopupMenu(hMenu,TPM_LEFTALIGN | TPM_RIGHTBUTTON,100,100,0,hWnd,NULL);
    break;
      

  4.   

    错误提示是:error C2360: initialization of 'hMenu' is skipped by 'case' label
      

  5.   

    大哥,在swith里不能定义变量!!!
      

  6.   

    在switch里面定义变量是可以的,但是不能在定义时完成初始化操作,必须在后续操作中完成,这是基本语法要求!