MFC中獲取程式自身的版本資訊
收集整理自CSDN論壇。
首先、在Stdafx.h中引入連結庫:
#pragma comment(lib,"Version.lib")
在對應的處理方法中如下:
char FileVerInfo[4096];
DWORD dwVerLen = 0;
CString strPath;//路徑
GetModuleFileName(NULL,strPath.GetBufferSetLength(MAX_PATH + 1), MAX_PATH);
strPath.ReleaseBuffer();
int n_Len = GetFileVersionInfoSize(strPath, &dwVerLen);
if (0 != n_Len)
{
BOOL m_bFile = GetFileVersionInfo(strPath,NULL,n_Len,FileVerInfo);
UINT cbTranslate;
char SubBlock[4096];
UINT dwBytes;
struct LANGANDCODEPAGE {
WORD wLanguage;
WORD wCodePage;
} *lpTranslate;
struct version {
char * strProductName;
char * strProductVersion;
char * strLegalCopyright;
char * strCompanyName;
char * strSpecialBuild;
} ver;
VerQueryValue(FileVerInfo,
TEXT("\\VarFileInfo\\Translation"),
(LPVOID*)&lpTranslate,
&cbTranslate);
for( UINT i=0; i < (cbTranslate/sizeof(struct LANGANDCODEPAGE)); i++ )
{
wsprintf( SubBlock,
TEXT("\\StringFileInfo\\%04x%04x\\ProductName"),
lpTranslate[i].wLanguage,
lpTranslate[i].wCodePage);
VerQueryValue(FileVerInfo,
SubBlock,
(void **)&ver.strProductName,
&dwBytes);
wsprintf( SubBlock,
TEXT("\\StringFileInfo\\%04x%04x\\ProductVersion"),
lpTranslate[i].wLanguage,
lpTranslate[i].wCodePage);
// Retrieve file description for language and code page "i".
VerQueryValue(FileVerInfo,
SubBlock,
(void **)&ver.strProductVersion,
&dwBytes);
wsprintf( SubBlock,
TEXT("\\StringFileInfo\\%04x%04x\\LegalCopyright"),
lpTranslate[i].wLanguage,
lpTranslate[i].wCodePage);
// Retrieve file description for language and code page "i".
VerQueryValue(FileVerInfo,
SubBlock,
(void **)&ver.strLegalCopyright,
&dwBytes);
wsprintf( SubBlock,
TEXT("\\StringFileInfo\\%04x%04x\\CompanyName"),
lpTranslate[i].wLanguage,
lpTranslate[i].wCodePage);
// Retrieve file description for language and code page "i".
VerQueryValue(FileVerInfo,
SubBlock,
(void **)&ver.strCompanyName,
&dwBytes);
wsprintf( SubBlock,
TEXT("\\StringFileInfo\\%04x%04x\\SpecialBuild"),
lpTranslate[i].wLanguage,
lpTranslate[i].wCodePage);
// Retrieve file description for language and code page "i".
VerQueryValue(FileVerInfo,
SubBlock,
(void **)&ver.strSpecialBuild,
&dwBytes);
((CStatic *)GetDlgItem(IDC_STATIC_ABOUT_COPYRIGHT))->SetWindowText(ver.strLegalCopyright);
CString strTemp;
CString strVersion;
strTemp = ver.strProductName;
strVersion += strTemp;
strTemp = ver.strProductVersion;
strVersion += " " + strTemp + "版本。";
((CStatic *)GetDlgItem(IDC_STATIC_ABOUT_VERSION))->SetWindowText(strVersion);
break;
}
}
相關文章
- 如何優雅獲的獲取不同系統版本中的程式資訊
- VC++ MFC程式設計版本資訊控制C++C程式程式設計
- 獲取app版本號相關資訊APP
- Spring 中優雅的獲取泛型資訊Spring泛型
- MySQL 如何獲取執行中的Queries資訊?MySql
- uni-app定位獲取自身和附近定位資訊APP
- 小程式獲取帶有分享者資訊的小程式碼
- 獲取位置資訊
- 獲取SqlServer 2005中欄位的備註資訊SQLServer
- Linux應用程式獲取執行緒棧的資訊Linux執行緒
- Linux: 獲取硬碟的UUID資訊Linux硬碟UI
- 獲取.crt證書的資訊
- golang gopsutil 程式 系統硬體資訊 獲取Golang
- 微信小程式 獲取使用者資訊微信小程式
- 使用捕獲 獲取身份證號的資訊
- SpringBoot專案中獲取配置檔案的配置資訊Spring Boot
- java獲取前端頁面傳送的cookie中的資訊Java前端Cookie
- Oracle database 19c中獲取當前資料庫版本的方法OracleDatabase資料庫
- jProcesses:使用Java獲取跨平臺程式的詳細資訊Java
- Flutter 中的資料的獲取Flutter
- 微信小程式獲取使用者資訊方法微信小程式
- 微信小程式 getUserProfile 獲取使用者資訊微信小程式
- iphone 獲取地址的詳細資訊iPhone
- Oracle獲取所有表名資訊和獲取指定表名欄位資訊Oracle
- 如何獲取 vue 單檔案自身原始碼路徑Vue原始碼
- 在Java中獲取Android端登陸的裝置資訊JavaAndroid
- iOS獲取SIM卡資訊iOS
- 獲取AFP服務資訊
- Laravel 中 $request 獲取請求資訊 用法 總結Laravel
- 微信小程式三種獲取使用者資訊的方式微信小程式
- Python下獲取視訊的旋轉角度資訊Python
- uniapp微信小程式獲取手機號 位置資訊APP微信小程式
- 獲取地圖的資訊到input裡地圖
- VC MFC SDI/MDI框架各部分指標獲取方式框架指標
- 獲取jwt(json web token)中儲存的使用者資訊JWTJSONWeb
- HarmonyOS 如何獲取裝置資訊(系統、版本、網路連線狀態)
- 讀取麒麟系統的各項版本資訊
- 【Python】獲取機器使用資訊Python