当前位置: 首页 > news >正文

vps建设网站别人访问不了百度搜索关键词排名优化推广

vps建设网站别人访问不了,百度搜索关键词排名优化推广,物流企业网站建设,什么是静态页面网站一、需求背景获取软件下依赖的dll库的版本信息,如下图所示版本为1.0.7.1018二、实现方法2.1步骤windows下实现,基于version.lib(version.dll)提供的函数获取这些信息首先使用GetFileVersionInfoSizeA(W)获取VersionInfo的大小,申请缓冲区&…

一、需求背景

获取软件下依赖的dll库的版本信息,如下图所示版本为1.0.7.1018

二、实现方法

2.1步骤

windows下实现,基于version.lib(version.dll)提供的函数获取这些信息

  1. 首先使用GetFileVersionInfoSizeA(W)获取VersionInfo的大小,申请缓冲区;

  1. 接着使用GetFileVersionInfoA(W)获取VersionInfo数据到缓冲区;

  1. 接着使用VerQueryValueA(W)依次获取\,\VarFileInfo\Translation,再根据Translation获取语言类型,接着\VarFileInfo\080404B0\ProductVersion便获取到了版本信息。

参考:https://www.cnblogs.com/comor/p/10607383.html

2.2 源码

#include <QDebug>
#include <string>
#include <tchar.h>
#include <iostream>
#include <windows.h>BOOL GetFileInfoStringWinApi(LPCTSTR pFileName, LPCTSTR pName /* = NULL */, LPTSTR ptBuf, UINT lenBuf)
{DWORD   dwDummyHandle = 0; // will always be set to zeroDWORD   dwLen = 0;BYTE    *pVersionInfo = NULL;BOOL    bRetVal;VS_FIXEDFILEINFO    FileVersion;HMODULE        hVerDll;hVerDll = LoadLibrary(_T("VERSION.dll"));if (hVerDll == NULL){return FALSE;}#ifdef _UNICODEtypedef DWORD(WINAPI * Fun_GetFileVersionInfoSize)(LPCTSTR, DWORD *);typedef BOOL(WINAPI * Fun_GetFileVersionInfo)(LPCTSTR, DWORD, DWORD, LPVOID);typedef BOOL(WINAPI * Fun_VerQueryValue)(LPCVOID, LPCTSTR, LPVOID, PUINT);
#elsetypedef DWORD(WINAPI * Fun_GetFileVersionInfoSize)(LPCSTR, DWORD *);typedef BOOL(WINAPI * Fun_GetFileVersionInfo)(LPCSTR, DWORD, DWORD, LPVOID);typedef BOOL(WINAPI * Fun_VerQueryValue)(LPCVOID, LPCSTR, LPVOID, PUINT);
#endifFun_GetFileVersionInfoSize        pGetFileVersionInfoSize;Fun_GetFileVersionInfo            pGetFileVersionInfo;Fun_VerQueryValue                pVerQueryValue;#ifdef _UNICODEpGetFileVersionInfoSize = (Fun_GetFileVersionInfoSize)::GetProcAddress(hVerDll, "GetFileVersionInfoSizeW");pGetFileVersionInfo = (Fun_GetFileVersionInfo)::GetProcAddress(hVerDll, "GetFileVersionInfoW");pVerQueryValue = (Fun_VerQueryValue)::GetProcAddress(hVerDll, "VerQueryValueW");
#elsepGetFileVersionInfoSize = (Fun_GetFileVersionInfoSize)::GetProcAddress(hVerDll, "GetFileVersionInfoSizeA");pGetFileVersionInfo = (Fun_GetFileVersionInfo)::GetProcAddress(hVerDll, "GetFileVersionInfoA");pVerQueryValue = (Fun_VerQueryValue)::GetProcAddress(hVerDll, "VerQueryValueA");
#endifstruct TRANSLATION{WORD langID;            // language IDWORD charset;            // character set (code page)} Translation;Translation.langID = 0x0409;    //Translation.charset = 1252;        // default = ANSI code pagedwLen = pGetFileVersionInfoSize(pFileName, &dwDummyHandle);if (dwLen == 0){bRetVal = FALSE;goto End;}pVersionInfo = new BYTE[dwLen]; // allocate version infobRetVal = pGetFileVersionInfo(pFileName, 0, dwLen, pVersionInfo);if (bRetVal == FALSE){goto End;}VOID     *pVI;UINT    uLen;bRetVal = pVerQueryValue(pVersionInfo, _T("\\"), &pVI, &uLen);if (bRetVal == FALSE){goto End;}memcpy(&FileVersion, pVI, sizeof(VS_FIXEDFILEINFO));bRetVal = pVerQueryValue(pVersionInfo, _T("\\VarFileInfo\\Translation"),&pVI, &uLen);if (bRetVal && uLen >= 4){memcpy(&Translation, pVI, sizeof(TRANSLATION));}else{bRetVal = FALSE;goto End;}//  BREAKIF(FileVersion.dwSignature != VS_FFI_SIGNATURE);if (FileVersion.dwSignature != VS_FFI_SIGNATURE){bRetVal = FALSE;goto End;}VOID        *pVal;UINT        iLenVal;if (pName == NULL){_stprintf_s(ptBuf, lenBuf, _T("%d.%d.%d.%d"),HIWORD(FileVersion.dwFileVersionMS), LOWORD(FileVersion.dwFileVersionMS),HIWORD(FileVersion.dwFileVersionLS), LOWORD(FileVersion.dwFileVersionLS));}else{TCHAR    szQuery[1024];_stprintf_s(szQuery, 1024, _T("\\StringFileInfo\\%04X%04X\\%s"),Translation.langID, Translation.charset, pName);bRetVal = pVerQueryValue(pVersionInfo, szQuery, &pVal, &iLenVal);if (bRetVal){_stprintf_s(ptBuf, lenBuf, _T("%s"), (TCHAR *)pVal);}else{_stprintf_s(ptBuf, lenBuf, _T("%s"), _T(""));}}End:FreeLibrary(hVerDll);hVerDll = NULL;delete[] pVersionInfo;pVersionInfo = NULL;return bRetVal;
}bool GetFileInfoString(const QString &fileName, const QString &name, QString &value)
{TCHAR *ptszStr = NULL;ptszStr = new TCHAR[1024];LPCWSTR fileName_wstr = reinterpret_cast<LPCWSTR>(fileName.data());LPCWSTR name_wstr = reinterpret_cast<LPCWSTR>(name.data());BOOL bRet = GetFileInfoStringWinApi(fileName_wstr, name_wstr, ptszStr, 1024);value = QString::fromWCharArray(ptszStr);delete ptszStr;ptszStr = NULL;return bRet;
}QString GetFileProductVersion(const QString &fileName)
{QString version;GetFileInfoString(fileName, "ProductVersion", version);return version;
}

2.3 测试结果

int main(int argc, char *argv[])
{QString fileName = "xxx//CZVisionCameraOperator.dll";qDebug() << GetFileProductVersion(fileName);return 0;
}

2.4 扩展

除版本信息,还可以获取文件说明、产品名称、版权、公司名称、原始文件名称等

FileDescription 文件说明

FileVersion 文件版本

ProductName 产品名称

ProductVersion 产品版本

LegalCopyright 版权

CompanyName 公司名称

OriginalFilename 原始文件名

http://www.zhongyajixie.com/news/9723.html

相关文章:

  • 长景园林这个网站谁做的在哪个平台做推广比较好
  • 淄博网站建设 很乱怎么推广一个app
  • 如何注册域名和网站蚂蚁链接bt链接
  • 绍兴网站制作计划今日热点头条新闻
  • 如何做网站限制策略app推广方案怎么写
  • 做色情游戏的网站有哪些拼多多怎么查商品排名
  • 句容网站建设公司怎样做推广营销
  • 有了域名空间服务器怎么做网站免费手机网页制作
  • 1688货源网官方网站入口搜索引擎网站排名
  • 17网站一起做网做百度推广销售怎么找客户
  • 数据展示网站模板爱站网站长百度查询权重
  • 网站建设shebei谷歌 翻墙入口
  • 餐饮门户网站 方案怎么做百度产品优化排名软件
  • 上海公安手机门户网站网址大全名称
  • 征婚网站上拉业务做恒指期货如何创建自己的网站
  • 东莞玩具加工东莞网站建设互联网下的网络营销
  • 北京网站建设方案策划网络营销推广方案前言
  • h5产品是什么意思关键词优化公司网站
  • 做miui主题网站天津优化代理
  • 建设工程投标文件在哪个网站有发布百度网盘下载慢怎么解决
  • 网站域名更改了怎么换海外推广方法有哪些
  • 网站进度条他妈到底怎么做网站关键词免费优化
  • 19年做网站网络广告营销方案策划内容
  • 服务器做内网网站产品策划推广方案
  • 博彩导航网站怎么做百度网络推广怎么做
  • 深圳宝安外贸网站建设公司东莞百度推广优化公司
  • 淄博网站制作设计地推推广方案
  • 永久免费的crm软件seo入门培训学多久
  • 东莞人才市场招聘信息2023seo关键词排名优化制作
  • 无为网站定制淘宝关键词排名优化技巧