1. 程式人生 > >c++ 獲取檔案版本號

c++ 獲取檔案版本號

連結器->輸入->附加依賴項  新增Version.lib,msdn上記錄的是新增mincore.lib,這個是錯的。
標頭檔案:Winver.h
GetCurrentVersion() {
	wchar_t versionCurrent[25];
	wchar_t versionPath[MAX_PATH]=TEXT("路徑");
	DWORD fileVersionSize = GetFileVersionInfoSizeW(versionPath, 0);
	wchar_t  *lpData = new wchar_t[fileVersionSize];
	if (!GetFileVersionInfo(versionPath, NULL, fileVersionSize, lpData)) {
		CString str;
		str.Format(TEXT("錯誤1:%d"), GetLastError());
		MessageBox(str);
		delete lpData;
		return;
	}
	VS_FIXEDFILEINFO *versionInfo;
	PUINT uint = 0;
	if (!VerQueryValue(lpData, TEXT("\\"), (LPVOID*)&versionInfo, uint)) {
				CString str;
		str.Format(TEXT("錯誤2:%d"), GetLastError());
		MessageBox(str);
		delete lpData;
		return;
	}
	wnsprintf(versionCurrent, 25, TEXT("%d.%d.%d.%d"), HIWORD(versionInfo->dwProductVersionMS), LOWORD(versionInfo->dwProductVersionMS),
		HIWORD(versionInfo->dwProductVersionLS), LOWORD(versionInfo->dwProductVersionLS));
	delete lpData;
}