• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WINVER と MENUITEMINFO 構造体)

WINVERとMENUITEMINFO構造体のエラー

このQ&Aのポイント
  • 現在、配列に格納された文字列・アイコンをメニューに動的に配置するコードを書いており、MENUITEMINFO構造体にBitmapハンドルを渡す必要がありますが、'tagMENUITEMINFOA' のメンバ 'hbmpItem' に関してエラーが発生し、停止します。
  • windows.hはメインクラスのヘッダで定義しており、またwinuser.h内での定義も正常です。検索や過去の質問を当たってみたところ、特定DLLやSDKのヴァージョンが低いと類似の問題が発生することが判明しました。
  • 具体的にどのファイルが問題か、あるいは根本的に何かが間違っているのかをご教示いただきたく、ご質問いたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

_WIN32_WINNT の値はどうなっていますか? MENUITEMINFOは下記のように宣言されています。 typedef struct tagMENUITEMINFOA {  ... #if (_WIN32_WINNT >= 0x0500)  HBITMAP hbmpItem; // used if MIIM_BITMAP #endif } MENUITEMINFOA, FAR *LPMENUITEMINFOA;

N_flick
質問者

お礼

お返事有り難うございます。遅れてしまい申し訳ありません。 ご指摘通りに _WIN32_WINNT の定義場所を確認しましたところ、 コード内で明示的に定義している場所はありませんでした。 またご指摘を頂きwinuser.hを再確認しましたところ、 どうやらWINVERの方ばかりに目に行ってしまい、見逃していたようです… WINVERの定義に続き  #ifndef _WIN32_WINNT  #define _WIN32_WINNT 0x500  #endif と定義することにより、無事にコンパイルは通りました。 ハンドルが上手く作成されておらず、まだまだ長い道のりですが、 スバリの回答を頂きましたこと、感謝いたします。 今後は見落としが無いよう、尽力いたします。 有り難うございました。

関連するQ&A