私が知る、リソーススクリプト用のヘッダーファイルのまとめです。

afxres.h
MFCのヘッダーファイルです。winres.hをインクルードしています。リソースID用の定数を多数定義しています。その中にはAFX_IDW_TOOLBARなどAFXで始まるものもあれば、ID_FILE_NEWのように汎用的に使えそうなものもあります。
atlres.h
WTLのヘッダーファイルです。Visual Studioの付属品ではありません。winresrc.hをインクルードしています。afxres.hのように、リソースID用の定数を多数定義しています。ATL/WTL用にATL_IDW_TOOLBARなどATLで始まるものもあります。そのほか、VS_VERSION_INFOやIDC_STATIC、ID_FILE_NEWなど、winres.hやafxres.hと同等のものも定義されています。
winres.h
前回の記事に書いたとおり、以前はMFC扱いでしたが、今はWindows SDKに収録されています。winresrc.hをインクルードしています。定数VS_VERSION_INFOと定数IDC_STATICの定義があります。
winresrc.h, windows.h
Windows SDKあるいはPlatform SDKに昔からあります。どちらをインクルードしても同じです。リソースコンパイル時のwindows.hは、winresrc.hをインクルードするようになっているためです。

以下、細々とした話です。

  • Visual Studioのリソースエディタでダイアログにスタティックコントロールを設置すると、リソースIDがIDC_STATICになります。そのため、Visual Studioでデスクトップアプリを作るなら、windows.hやwinresrc.hでは足りません。それ以外を使用するのが良いでしょう。
  • 最近のVisual Studioでは、デフォルトのオプションだとMFCが入りません(C++自体もそうですけど)。MFCが入っていないということはafxres.hもありません。アプリ自体でMFCを使っていない場合、afxres.h以外を使うのがおすすめです。
  • winres.hはWindows SDKにはありますが、現在のところMinGW-w64にはないようです: /mingw-w64-headers (Tag v5.0.1)。

このラインナップ、私が認識しているものを並べたものです。なので、Visual StudioやWindows SDKに入っていないatlres.hを含めています。


スポンサード リンク

この記事のカテゴリ