在我的C++項目我已經添加了rc文件,我可以存儲文件的版本,可能重複:
How do I read from a version resource in Visual C++C++從.RC獲得版本爲代碼
可執行的描述,版權等。
並沒問題,我編譯,我去瀏覽器 - >文件屬性,我看到窗體中的所有字段。
我的問題是:如果我需要從項目讀取自己的文件版本(例如顯示爲表單),我該如何做到這一點?
感謝
在我的C++項目我已經添加了rc文件,我可以存儲文件的版本,可能重複:
How do I read from a version resource in Visual C++C++從.RC獲得版本爲代碼
可執行的描述,版權等。
並沒問題,我編譯,我去瀏覽器 - >文件屬性,我看到窗體中的所有字段。
我的問題是:如果我需要從項目讀取自己的文件版本(例如顯示爲表單),我該如何做到這一點?
感謝
Windows提供的可執行文件一組API calls for retrieving the version information。以下代碼片段可以幫助您入門。
bool GetVersionInfo(
LPCTSTR filename,
int &major,
int &minor,
int &build,
int &revision)
{
DWORD verBufferSize;
char verBuffer[2048];
// Get the size of the version info block in the file
verBufferSize = GetFileVersionInfoSize(filename, NULL);
if(verBufferSize > 0 && verBufferSize <= sizeof(verBuffer))
{
// get the version block from the file
if(TRUE == GetFileVersionInfo(filename, NULL, verBufferSize, verBuffer))
{
UINT length;
VS_FIXEDFILEINFO *verInfo = NULL;
// Query the version information for neutral language
if(TRUE == VerQueryValue(
verBuffer,
_T("\\"),
reinterpret_cast<LPVOID*>(&verInfo),
&length))
{
// Pull the version values.
major = HIWORD(verInfo->dwProductVersionMS);
minor = LOWORD(verInfo->dwProductVersionMS);
build = HIWORD(verInfo->dwProductVersionLS);
revision = LOWORD(verInfo->dwProductVersionLS);
return true;
}
}
}
return false;
}
@volkerk現在不應該是「winapi」嗎? ;) –