首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用GetFileVersionInfo函数?

如何使用GetFileVersionInfo函数?
EN

Stack Overflow用户
提问于 2012-11-29 12:53:33
回答 1查看 20.1K关注 0票数 4

我有这样的代码--即返回我使用的文件版本(结构)作为例-- their 32.dll,但是有一些值我不理解它们的含义,我很想得到一个解释。

以下是代码:

代码语言:javascript
运行
复制
void GetFileVersion( PCHAR pFilePath  ,PVERSION pRetVersion)
{
DWORD               dwSize              = 0;
BYTE                *pVersionInfo       = NULL;
VS_FIXEDFILEINFO    *pFileInfo          = NULL;
UINT                pLenFileInfo        = 0;


/*getting the file version info size */
dwSize = GetFileVersionInfoSize( pFilePath, NULL );
if ( dwSize == 0 )
{
    printf( "Error in GetFileVersionInfoSize: %d\n", GetLastError() );
    return;
}

pVersionInfo = new BYTE[ dwSize ]; /*allocation of space for the verison size */

if ( !GetFileVersionInfo( pFilePath, 0, dwSize, pVersionInfo ) ) /*entering all info     data to pbVersionInfo*/
{
    printf( "Error in GetFileVersionInfo: %d\n", GetLastError() );
    delete[] pVersionInfo;
    return;
}

if ( !VerQueryValue( pVersionInfo, TEXT("\\"), (LPVOID*) &pFileInfo, &pLenFileInfo ) )
{
    printf( "Error in VerQueryValue: %d\n", GetLastError() );
    delete[] pVersionInfo;
    return;
}


/*checking if the allocation succeeded */
if (NULL == pRetVersion)
{
    printf("Allocation failed! \n" , GetLastError());
    return;
}


pRetVersion->major  =  ( pFileInfo->dwFileVersionMS >> 16 ) & 0xffff ;
pRetVersion->minor  =  ( pFileInfo->dwFileVersionMS) & 0xffff;
pRetVersion->hotfix =  ( pFileInfo->dwFileVersionLS >>  16 ) & 0xffff;
pRetVersion->other  =  ( pFileInfo->dwFileVersionLS) & 0xffff;      

}
  1. dwSize的含义是什么?这只是文件的版本大小吗?单击while 32.dll时,我可以在哪里看到它?
  2. pLenFileinfo -这个尺寸是多少?
  3. 当我查看VS_FIXEDFILEINFO的结构时,只有版本信息信息,是否有需要获取的信息,例如:File descriptionDate modifiedOriginal filename等?(“详细信息”中的所有其他属性)?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-29 13:06:36

文件版本信息是可变长度的。它包含了许多不同的信息。所有这些不同片段的总长度由GetFileVersionInfoSize的返回值表示。

当您调用VerQueryValue时,您是在整个版本信息中询问特定的单个信息。而这个特定部分的长度永远不可能比整个尺寸大。

VerQueryFile文档包含提取文件描述的示例代码。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13626295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档