- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WINVER と MENUITEMINFO 構造体)
WINVERとMENUITEMINFO構造体のエラー
このQ&Aのポイント
- 現在、配列に格納された文字列・アイコンをメニューに動的に配置するコードを書いており、MENUITEMINFO構造体にBitmapハンドルを渡す必要がありますが、'tagMENUITEMINFOA' のメンバ 'hbmpItem' に関してエラーが発生し、停止します。
- windows.hはメインクラスのヘッダで定義しており、またwinuser.h内での定義も正常です。検索や過去の質問を当たってみたところ、特定DLLやSDKのヴァージョンが低いと類似の問題が発生することが判明しました。
- 具体的にどのファイルが問題か、あるいは根本的に何かが間違っているのかをご教示いただきたく、ご質問いたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
_WIN32_WINNT の値はどうなっていますか? MENUITEMINFOは下記のように宣言されています。 typedef struct tagMENUITEMINFOA { ... #if (_WIN32_WINNT >= 0x0500) HBITMAP hbmpItem; // used if MIIM_BITMAP #endif } MENUITEMINFOA, FAR *LPMENUITEMINFOA;
お礼
お返事有り難うございます。遅れてしまい申し訳ありません。 ご指摘通りに _WIN32_WINNT の定義場所を確認しましたところ、 コード内で明示的に定義している場所はありませんでした。 またご指摘を頂きwinuser.hを再確認しましたところ、 どうやらWINVERの方ばかりに目に行ってしまい、見逃していたようです… WINVERの定義に続き #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x500 #endif と定義することにより、無事にコンパイルは通りました。 ハンドルが上手く作成されておらず、まだまだ長い道のりですが、 スバリの回答を頂きましたこと、感謝いたします。 今後は見落としが無いよう、尽力いたします。 有り難うございました。