プロが教える店舗&オフィスのセキュリティ対策術

MFCでアプリケーションを作成しています。

リソースビュー⇒「Version」⇒「VS_VERSION_INFO」の、
キー「FILEVERSION」の値を取得するにはどのように実装すれば良いのでしょうか?
ご存知の方おられましたら、ご教授お願い致します。
開発環境はVC++2005です。

A 回答 (2件)

GetFileVersionInfoSize→GetFileVersionInfo→VerQueryValue


で取れる構造体のdwFileVersionMSとdwFileVersionLS
ファイルのプロパティで見れるような4つの数字に分けるときはそれぞれにHIWORDマクロとLOWORDマクロ

参考URL:http://hp.vector.co.jp/authors/VA000092/win32/mi …

この回答への補足

ご回答ありがとうございます。
参考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>
を追加したのですが、だめでした。
これらのマクロを使用するために、何か他に定義しなければいけないのでしょうか?
当方マクロを使用したことがなく、解決出来ない状態です。
お手数ですが、ご教授頂けませんでしょうか。

補足日時:2009/02/18 11:24
    • good
    • 0

HIWORDやLOWORDは型マクロではなく


関数マクロです。
HIWORD(info->dwFileVersionMS)
とかにする必要があります。

ちなみに、バージョン情報の左側から取り出すには、
以下のようにすることもできます。
info->dwFileVersionMS>>16,
info->dwFileVersionMS&0xffff,
info->dwFileVersionLS>>16,
info->dwFileVersionLS&0xffff,
    • good
    • 0
この回答へのお礼

DWORD FileVer1 = HIWORD( info->dwFileVersionMS );
DWORD FileVer2 = LOWORD( info->dwFileVersionMS );
DWORD FileVer3 = HIWORD( info->dwFileVersionLS );
DWORD FileVer4 = LOWORD( info->dwFileVersionLS );
のように記述することで取り出すことが出来ました!
ご回答ありがとうございました。

お礼日時:2009/02/18 15:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A