- ベストアンサー
【MFC】Version情報の取得
MFCでアプリケーションを作成しています。 リソースビュー⇒「Version」⇒「VS_VERSION_INFO」の、 キー「FILEVERSION」の値を取得するにはどのように実装すれば良いのでしょうか? ご存知の方おられましたら、ご教授お願い致します。 開発環境はVC++2005です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
GetFileVersionInfoSize→GetFileVersionInfo→VerQueryValue で取れる構造体のdwFileVersionMSとdwFileVersionLS ファイルのプロパティで見れるような4つの数字に分けるときはそれぞれにHIWORDマクロとLOWORDマクロ
その他の回答 (1)
- aris-wiz
- ベストアンサー率38% (96/252)
HIWORDやLOWORDは型マクロではなく 関数マクロです。 HIWORD(info->dwFileVersionMS) とかにする必要があります。 ちなみに、バージョン情報の左側から取り出すには、 以下のようにすることもできます。 info->dwFileVersionMS>>16, info->dwFileVersionMS&0xffff, info->dwFileVersionLS>>16, info->dwFileVersionLS&0xffff,
お礼
DWORD FileVer1 = HIWORD( info->dwFileVersionMS ); DWORD FileVer2 = LOWORD( info->dwFileVersionMS ); DWORD FileVer3 = HIWORD( info->dwFileVersionLS ); DWORD FileVer4 = LOWORD( info->dwFileVersionLS ); のように記述することで取り出すことが出来ました! ご回答ありがとうございました。
補足
ご回答ありがとうございます。 参考URLを元にソースを組んだところ、 DWORD hoge1 = info->dwFileVersionMS; DWORD hoge2 = info->dwFileVersionLS; にてバージョン情報らしき値を取得することが出来ました。 >ファイルのプロパティで見れるような4つの数字に分けるときはそれぞれにHIWORDマクロとLOWORDマクロ のご指摘について、 DWORD hoge1 = (HIWORD)info->dwFileVersionMS; DWORD hoge2 = (LOWORD)info->dwFileVersionLS; としたところ、 'HIWORD' : 定義されていない識別子です。 'LOWORD' : 定義されていない識別子です。 とのエラーが出てしまい、コンパイルが通りません。 何かヘッダをインクルードするのかと思い、色々調べた上 #include <windef.h> #include <windows.h> を追加したのですが、だめでした。 これらのマクロを使用するために、何か他に定義しなければいけないのでしょうか? 当方マクロを使用したことがなく、解決出来ない状態です。 お手数ですが、ご教授頂けませんでしょうか。