c_cpp 打印文件版本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 打印文件版本相关的知识,希望对你有一定的参考价值。
#include <windows.h>
#include <stdio.h>
#pragma comment(lib, "Version.lib")
void PrintFileVersion(LPCTSTR szVersionFile)
{
DWORD verHandle;
UINT size = 0;
LPBYTE lpBuffer = NULL;
DWORD verSize = GetFileVersionInfoSize(szVersionFile, &verHandle);
if (verSize != 0)
{
LPSTR verData = malloc(verSize);
if (GetFileVersionInfo(szVersionFile, verHandle, verSize, verData))
{
if (VerQueryValue(verData, "\\", (VOID FAR* FAR*)&lpBuffer, &size))
{
if (size)
{
VS_FIXEDFILEINFO *verInfo = (VS_FIXEDFILEINFO *)lpBuffer;
if (verInfo->dwSignature == 0xfeef04bd)
{
// Doesn't matter if you are on 32 bit or 64 bit,
// DWORD is always 32 bits, so first two revision numbers
// come from dwFileVersionMS, last two come from dwFileVersionLS
char result[sizeof(DWORD) * 4 + 4] = "";
sprintf_s(result, sizeof(result), "%d.%d.%d.%d",
(verInfo->dwFileVersionMS >> 16) & 0xffff,
(verInfo->dwFileVersionMS >> 0) & 0xffff,
(verInfo->dwFileVersionLS >> 16) & 0xffff,
(verInfo->dwFileVersionLS >> 0) & 0xffff
);
printf(result);
}
}
}
}
free(verData);
}
}
int main()
{
TCHAR* szVersionFile = "C:/WINDOWS/system32/notepad.exe";
PrintFileVersion(szVersionFile);
system("PAUSE");
}
以上是关于c_cpp 打印文件版本的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 打印0到10,然后打印10到0
c_cpp 将数据保存到文件的datapipe.c版本
c_cpp Ç代码断言打印
c_cpp 打印矢量
c_cpp 打印中国地图
c_cpp 格式化日期打印