◀ANSI版開発トップへ
  • 665 Re2:Win95でメニューが出ないのは
    • 668 Re3: Win95でメニューが出ないのは
  • [665] Re2:Win95でメニューが出ないのは げんた 2001年08月31日 13:14

    >Win32 の場合 FormatMessage からエラーメッセージが得られます。
    「パラメータが間違っています」というのはFormatMessage&GetLastErrorの結果です.

    ---
    再度いろいろやってみてわかったこと.
    MIIM_TYPEとMIIM_FTYPEを同時指定するとエラーになる.
    cchの値は0でも動く.
    MIIM_TYPEを削除してMIIM_FTYPEとMIIM_STRINGを追加したらWin2Kでは動きました.でも,これは95ではサポートされていない.

    --
    (表面的な)原因が分かりました.MSのサイトからダウンロードした最新のPlatform SDKに含まれるincludeファイルを使っているとメニューが出ません.インクルードパスの順番を変えたらWin95でも動くものができました.

    --
    Win95でメニューが出ないときでもエラー内容は「処理は正常に終了しました」だって.
    • [668] Re3: Win95でメニューが出ないのは げんた 2001年08月31日 14:06

      最新のSDKでは,sizeof( MENUITEMINFO ) == 48
      VC付属SDKでは,sizeof( MENUITEMINFO ) == 44

      両者の違いは
      (最新)
      #if(WINVER >= 0x0500)
      HBITMAP hbmpItem; // used if MIIM_BITMAP
      #endif /* WINVER >= 0x0500 */

      (VC付属)
      #if (_WIN32_WINNT >= 0x0500)
      HBITMAP hbmpItem; // used if MIIM_BITMAP
      #endif

      構造体サイズが大きくなると動作しないと言うのは明らかにWin95のバグのような気もするけど.