笔记本(更新中...)

1.获得自身的版本信息



/*
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;
}

//VC6----persional/ado_test2

//Start

void CADO_TEST2App::GetVersion(CString &strFileVersion, CString &strProductVersion)
{
    CString strExePath;

    ::GetModuleFileName(NULL,strExePath.GetBufferSetLength(MAX_PATH),MAX_PATH);
    strExePath.ReleaseBuffer();

    //首先获得版本信息资源的长度
    DWORD dwHandle = 0;
    DWORD dwInfoSize = ::GetFileVersionInfoSize((LPTSTR)(LPCTSTR)strExePath,&dwHandle);//version.lib
    //配置 连接或者 #pragma comment(lib,"version.lib")---链接时包含特定文件

    //将版本信息资源读入缓冲区
    if(dwInfoSize == 0)
        return;

    TCHAR *pBlock = new TCHAR[dwInfoSize];
    GetFileVersionInfo((LPTSTR)(LPCTSTR)strExePath,0,dwInfoSize,pBlock);

    //获得生成文件使用的代码页及文件版本
    unsigned int  uTranslate = 0;
    struct LANGANDCODEP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值