社区
非技术区
帖子详情
求一个API, 查询可执行文件版本号的API名称
lvyb050
2012-03-14 09:54:53
怎么现在谷歌也不给力了, 搜都搜不到.
...全文
113
2
打赏
收藏
求一个API, 查询可执行文件版本号的API名称
怎么现在谷歌也不给力了, 搜都搜不到.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lvyb050
2012-03-15
打赏
举报
回复
哥哥,第一种我不会用啊.
编译也通过了, 但是文件路径是哪个参数?
W170532934
2012-03-14
打赏
举报
回复
1.获得自身的版本信息
//////////////////////////////////////////////////////////////
//
// File: version.cpp
// Description: Sample code for getting version info
// Created: 2008-1-4
// Author: Ken Zhang
// E-Mail: cpp.china@hotmail.com
//
//////////////////////////////////////////////////////////////
/*
The following code shows how to get FILEINFO value from resource file.
These WIN32 functions will be used:
* GetFileVersionInfo
* GetFileVersionInfoSize
* VerQueryValue
* GetModuleFileName
*/
#include <windows.h>
#include <tchar.h>
#include <string>
#include <iostream>
#pragma comment(lib, "version.lib")
using namespace std;
bool GetFileVersion(HMODULE hModule, WORD *pBuffer)
{
TCHAR fname[MAX_PATH];
VS_FIXEDFILEINFO *pVi;
DWORD dwHandle;
string str;
if (::GetModuleFileName(hModule, fname, MAX_PATH))
{
int size = GetFileVersionInfoSize(fname, &dwHandle);
if (size > 0) {
BYTE *buffer = new BYTE[size];
if (GetFileVersionInfo(fname, dwHandle, size, buffer)) {
if (VerQueryValue(buffer, _T("\\"), (LPVOID *)&pVi, (PUINT)&size)) {
pBuffer[0] = HIWORD(pVi->dwFileVersionMS);
pBuffer[1] = LOWORD(pVi->dwFileVersionMS);
pBuffer[2] = HIWORD(pVi->dwFileVersionLS);
pBuffer[3] = LOWORD(pVi->dwFileVersionLS);
delete buffer;
return true;
}
}
delete buffer;
}
}
return false;
}
string GetFileVersion(HMODULE hModule)
{
string str;
WORD buffer[4];
if (GetFileVersion(hModule, buffer))
{
char str2[32];
for (int i = 0; i < sizeof(buffer)/sizeof(WORD); i++)
{
itoa(buffer[i], str2, 10);
str += str2;
if (i != sizeof(buffer)/sizeof(WORD) - 1)
{
str += ".";
}
}
}
return str;
}
void main()
{
cout << "Current version is: " << GetFileVersion(::GetModuleHandle(NULL)) << endl;
}
2.获得其他exe或dll的版本信息
std::string GetFileVersion(const std::string &strFilePath)
{
DWORD dwSize;
DWORD dwRtn;
std::string szVersion;
//获取版本信息大小
dwSize = GetFileVersionInfoSize(_T(strFilePath.c_str()),NULL);
if (dwSize == 0)
{
return "";
}
char *pBuf;
pBuf= new char[dwSize + 1];
if(pBuf == NULL)
return "";
memset(pBuf, 0, dwSize + 1);
//获取版本信息
dwRtn = GetFileVersionInfo(_T(strFilePath.c_str()),NULL, dwSize, pBuf);
if(dwRtn == 0)
{
return "";
}
LPVOID lpBuffer = NULL;
UINT uLen = 0;
//版本资源中获取信息
dwRtn = VerQueryValue(pBuf,
TEXT("\\StringFileInfo\\080404b0\\FileVersion"), //0804中文
//04b0即1252,ANSI
//可以从ResourceView中的Version中BlockHeader中看到
//可以测试的属性
/*
CompanyName
FileDescription
FileVersion
InternalName
LegalCopyright
OriginalFilename
ProductName
ProductVersion
Comments
LegalTrademarks
PrivateBuild
SpecialBuild
*/
&lpBuffer,
&uLen);
if(dwRtn == 0)
{
return "";
}
szVersion = (char*)lpBuffer;
delete pBuf;
return szVersion;
}
void main()
{
std::string strFilePath = "abc.exe";
cout << strFilePath << " version is: " << GetFileVersion(strFilePath) << endl;
}
鸿蒙如何
查询
应用包的
名称
、供应商、
版本号
、版本文本、安装时间、更新时间描述信息
博客介绍了鸿蒙系统中
查询
应用包的
名称
、供应商、
版本号
等详细描述信息的方法。需了解BundleInfo应用包信息,可通过bundleManager.getBundleInfoForSelf()接口获取,还给出了参考链接,并对版权使用作出说明。
车辆信息
查询
api
,通过车系
名称
查询
相关信息
本文介绍了
一个
车辆信息
查询
API
,该接口通过车系
名称
,提供http GET方式获取相关车辆信息。接口地址为http://op.juhe.cn/onebox/car/query,支持json格式。开发者可以使用示例中的APPKEY进行调用。
c++ windows
api
获取文件
版本号
本文介绍了
一个
使用C++实现的文件版本信息
查询
程序,该程序能够读取Windows平台上的DLL或其他文件的版本信息,如文件描述、
版本号
、公司
名称
等。通过调用Windows
API
函数GetFileVersionInfoSizeA、GetFileVersionInfoA和VerQueryValueA,程序实现了对文件版本信息的高效读取。
企业
名称
模糊
查询
API
——解锁高效信息检索新途径
本文介绍企业
名称
模糊
查询
API
的核心价值及多场景应用,涵盖市场调研、商业合作、政府监管与供应链管理等领域。通过智能模糊匹配技术,实现仅凭关键词即可快速获取企业工商信息,提升数据准确性与时效性,并支持系统高效集成,助力企业自动化信息检索与决策。
企业工商信息
查询
免费
api
接口
本文介绍了
一个
能
查询
企业工商信息的免费
API
接口,支持通过企业
名称
、注册号或统一社会信用代码获取全维度信息,包括工商变更、股东结构、经营异常等多个方面。但目前不支持事业单位等非工商注册机构的
查询
,且刚注册或变更信息可能有延迟。
非技术区
15,446
社区成员
58,112
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章