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;
}
}
相關文章
- 如何優雅獲的獲取不同系統版本中的程式資訊
- 獲取資訊版本1
- VC++ MFC程式設計版本資訊控制C++C程式程式設計
- 獲取app版本號相關資訊APP
- 【RAC】使用crsctl命令獲取Oracle CRS版本資訊Oracle
- AWR 中 top sql 的資訊獲取 - 分析SQL
- 在MFC類中各種類的指標的獲取和應用指標
- Android中獲取應用程式(包)的資訊-----PackageManager的使用(一)AndroidPackage
- 利用WinAPI(GetFileVersionInfo)獲取檔案版本資訊API
- MySQL 如何獲取執行中的Queries資訊?MySql
- Android中獲取系統記憶體資訊以及程式資訊-----ActivityManager的使用(一)Android記憶體
- 怎樣在程式中獲取所有執行緒的堆疊資訊?執行緒
- uni-app定位獲取自身和附近定位資訊APP
- 求VC版本如何利用WMI獲得磁碟資訊 VC/MFC / 程式/執行緒/DLL - 社群 community.csdn.net執行緒Unity
- js獲取瀏覽器版本作業系統等資訊程式碼例項JS瀏覽器作業系統
- Spring 中優雅的獲取泛型資訊Spring泛型
- 從資料字典中獲取ash資訊
- Android中獲取當前位置資訊Android
- 在Delphi程式設計中獲取作業系統資訊 (轉)程式設計作業系統
- 獲取自身ip
- 微信小程式 獲取使用者資訊微信小程式
- 小程式獲取帶有分享者資訊的小程式碼
- MFC框架各部分指標獲取方式框架指標
- 獲取系統版本
- 如何獲取 vue 單檔案自身原始碼路徑Vue原始碼
- iTunes構建版本 獲取不到應用程式
- SAP中關於使用者IP資訊的獲取
- java獲取前端頁面傳送的cookie中的資訊Java前端Cookie
- 獲取.crt證書的資訊
- 微信小程式獲取使用者資訊方法微信小程式
- mac獲取cpu資訊Mac
- 獲取SqlServer 2005中欄位的備註資訊SQLServer
- Laravel 中 $request 獲取請求資訊 用法 總結Laravel
- jProcesses:使用Java獲取跨平臺程式的詳細資訊Java
- 微信小程式三種獲取使用者資訊的方式微信小程式
- Linux應用程式獲取執行緒棧的資訊Linux執行緒
- iphone 獲取地址的詳細資訊iPhone
- 獲取網路卡的相關資訊