住房与建设部网站,网站对公司的作用是什么,淮北市矿业工程建设公司网站,怎么做微信上的网站文章目录前言一、如何在VisualStudio2019中新增项目版本信息二、在程序中调用项目版本信息1.引入库version.lib1.1.通过vs自带的属性页引入库1.2.手动引入库2.新增版本信息读取类3.调用类获取信息总结前言
本文主要讲述如何在Visual Studio 2019 以及Qt结合的开发项目中#…
文章目录前言一、如何在VisualStudio2019中新增项目版本信息二、在程序中调用项目版本信息1.引入库version.lib1.1.通过vs自带的属性页引入库1.2.手动引入库2.新增版本信息读取类3.调用类获取信息总结前言
本文主要讲述如何在Visual Studio 2019 以及Qt结合的开发项目中新增版本信息到资源并且可以通过代码读取资源存储的版本信息。 一、如何在VisualStudio2019中新增项目版本信息 切换到解决方案视图中 在解决方案名称上右键 添加 资源 选择Version点击新建 按照自己的公司版权版本信息填写并保存编译
二、在程序中调用项目版本信息
为了保证整个项目的统一性建议版本维护就在这里维护如果项目中界面里要调用到相关信息那么就通过如下操作对里面的信息进行读取
1.引入库version.lib
1.1.通过vs自带的属性页引入库
切换到属性管理器页右键Debug/Release添加新项目属性表随便起个名在链接器-输入-附加依赖项中添加version.lib应用并确定
1.2.手动引入库
代码如下示例
#pragma comment(lib, version.lib)2.新增版本信息读取类
新增头文件
#pragma once
#include QObject
#include windows.h
#include tchar.hclass VersionUpdate
{
public:QString product_name ;QString company_info ;QString copyright_info ;QString version_info ;QString VersionUpdate::GetVersion(){int nMaxPathName 4096; // Max length of file name/pathTCHAR* pBuffer;UINT nItemLength;void* pData, * lpBuffer;QString sVersion;DWORD dwInfoSize, dwHandle;VS_FIXEDFILEINFO* pFileInfo;// Get the file path and namepBuffer new TCHAR[nMaxPathName];GetModuleFileName(NULL, pBuffer, nMaxPathName - 1);// Get File Version Info sizedwInfoSize GetFileVersionInfoSize(pBuffer, dwHandle);if (dwInfoSize 0){pData new TCHAR[dwInfoSize];if (GetFileVersionInfo(pBuffer, dwHandle, dwInfoSize, pData)){//获取产品名称if (VerQueryValue(pData, _T(\\StringFileInfo\\080404b0\\ProductName), lpBuffer, nItemLength)){product_name QString::fromWCharArray((LPCTSTR)lpBuffer, nItemLength);}//获取公司信息if (VerQueryValue(pData, _T(\\StringFileInfo\\080404b0\\CompanyName), lpBuffer, nItemLength)){company_info QString::fromWCharArray((LPCTSTR)lpBuffer, nItemLength);}//获取版权信息if (VerQueryValue(pData, _T(\\StringFileInfo\\080404b0\\LegalCopyright), lpBuffer, nItemLength)){copyright_info QString::fromWCharArray((LPCTSTR)lpBuffer, nItemLength);}//获取主次版本号if (VerQueryValue(pData, _T(\\), lpBuffer, nItemLength)){pFileInfo (VS_FIXEDFILEINFO*)lpBuffer;sVersion QString(%1.%2.%3.%4).arg(pFileInfo-dwProductVersionMS 16).arg(pFileInfo-dwProductVersionMS 0xFFFF).arg(pFileInfo-dwProductVersionLS 16).arg(pFileInfo-dwProductVersionLS 0xFFFF);// Calculate the product version as a number, you can delete the next statement if you dont need it.DWORD dwProductVersion (pFileInfo-dwProductVersionMS 16) * 1000 (pFileInfo-dwProductVersionMS 0xFFFF) * 100 (pFileInfo-dwProductVersionLS 16) * 10 (pFileInfo-dwProductVersionLS 0xFFFF) * 1;version_info sVersion;}}// Delete the data bufferdelete[] pData;}// Get rid of the allocated string bufferdelete[] pBuffer;return sVersion;}
private:
};我的办法很笨反正就是这么用就能拿到。借用了别人的部分想法 3.调用类获取信息
//版本信息获取
#include version_info.h
int main(int argc, char* argv[])
{VersionUpdate newVersionInfo;newVersionInfo.GetVersion();C_NAME newVersionInfo.product_name;soft_version newVersionInfo.version_info;C_NAME.truncate(C_NAME.indexOf(QChar::Null));qDebug() QString(日志记录开始 软件%1 版本%2).arg(C_NAME).arg(soft_version);
}
基本上就这样最后版本信息就能存储并调用 原来的版本信息
改后的版本信息
总结
以上为如何在Visual Studio 2019 以及Qt结合的开发项目中新增版本信息到资源并且可以通过代码读取资源存储的版本信息。