社区
C++ Builder
帖子详情
有没有api函数能知道文件的版本?
lingyunfeipu
2003-03-21 08:29:54
有没有api函数能知道文件的版本?
比如*.dwg 我要知道是R14还是R2000
有源代码吗?
...全文
30
8
打赏
收藏
有没有api函数能知道文件的版本?
有没有api函数能知道文件的版本? 比如*.dwg 我要知道是R14还是R2000 有源代码吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wu_07
2003-07-11
打赏
举报
回复
AnsiString file = Application->ExeName; //exe文件名
unsigned int m_uiDataSize = GetFileVersionInfoSize(file.c_str(),NULL);
LPVOID m_lpBuffer = malloc(m_uiDataSize);
memset(m_lpBuffer,0,m_uiDataSize);
GetFileVersionInfo(file.c_str(),NULL,m_uiDataSize,m_lpBuffer);
LPVOID m_lpData=malloc(80);
memset(m_lpData,0,80);
AnsiString TempString = "";
union TTranslationTableEntry
{ //得到char_set,为了下一步查询
struct struct_Codes
{
WORD LanguageCode;
WORD CharsetCode;
} Codes;
DWORD RawData;
};
VerQueryValue(m_lpBuffer,
TEXT("\\VarFileInfo\\Translation"),
&m_lpData,
&m_uiDataSize);
TempString.printf("%.4X%.4X", (static_cast<TTranslationTableEntry*>(m_lpData))->Codes.LanguageCode,
(static_cast<TTranslationTableEntry*>(m_lpData))->Codes.CharsetCode);
TempString ="\\StringFileInfo\\"+TempString+"\\ProductVersion";
AnsiString ProductVersion;
VerQueryValue(m_lpBuffer,
TempString.c_str(),
&m_lpData,
&m_uiDataSize);
ProductVersion.sprintf("%s",m_lpData);
free(m_lpBuffer);
free(m_lpData);
「已注销」
2003-05-27
打赏
举报
回复
mark
书生
2003-03-21
打赏
举报
回复
学习。
jimzj
2003-03-21
打赏
举报
回复
同意楼上的
xuv2002
2003-03-21
打赏
举报
回复
代码我给你贴贴
AnsiString file = "d:\\winnt\\hh.exe";
unsigned int m_uiDataSize = GetFileVersionInfoSize(file.c_str(),NULL);
LPVOID m_lpBuffer = malloc(m_uiDataSize); memset(m_lpBuffer,0,m_uiDataSize);
GetFileVersionInfo(file.c_str(),NULL,m_uiDataSize,m_lpBuffer);
LPVOID m_lpData=malloc(80);memset(m_lpData,0,80);
AnsiString productname;
VerQueryValue(m_lpBuffer,
TEXT("\\StringFileInfo\\040904B0\\ProductName"), //产品名称
&m_lpData,
&m_uiDataSize);
productname.sprintf("%s",m_lpData);
AnsiString ProductVersion;
VerQueryValue(m_lpBuffer,
TEXT("\\StringFileInfo\\040904B0\\ProductVersion"),
&m_lpData,
&m_uiDataSize);
ProductVersion.sprintf("%s",m_lpData);
AnsiString Company;
VerQueryValue(m_lpBuffer,
TEXT("\\StringFileInfo\\040904B0\\CompanyName"),
&m_lpData,
&m_uiDataSize);
Company.sprintf("%s", m_lpData);
AnsiString CopyRight;
VerQueryValue(m_lpBuffer,
TEXT("\\StringFileInfo\\040904B0\\LegalCopyright"),
&m_lpData,
&m_uiDataSize);
CopyRight.sprintf("%s", m_lpData);
AnsiString Comments;
VerQueryValue(m_lpBuffer,
TEXT("\\StringFileInfo\\040904B0\\Comments"),
&m_lpData,
&m_uiDataSize);
Comments.sprintf("%s", m_lpData);
AnsiString FileVer;
VerQueryValue(m_lpBuffer,
TEXT("\\StringFileInfo\\040904B0\\FileVersion"),
&m_lpData,
&m_uiDataSize);
FileVer.sprintf("%s", m_lpData);
/*
其他的我就不写了,照着来就行了
TEXT("\\StringFileInfo\\040904B0\\InternalName"),
TEXT("\\StringFileInfo\\040904B0\\FileDescription"),
TEXT("\\StringFileInfo\\040904B0\\PrivateBuild"),
TEXT("\\StringFileInfo\\040904B0\\LegalTrademarks"),
TEXT("\\StringFileInfo\\040904B0\\SpecialBuild"),
*/
free(m_lpBuffer); m_lpBuffer = NULL;
free(m_lpData); m_lpData = NULL;
zahuifan
2003-03-21
打赏
举报
回复
同意 invalid(空心菜),自己弄才有乐趣。
xuv2002
2003-03-21
打赏
举报
回复
BOOL GetFileVersionInfo(
LPTSTR lptstrFilename, // pointer to filename string
DWORD dwHandle, // ignored
DWORD dwLen, // size of buffer
LPVOID lpData // pointer to buffer to receive file-version info.
);
The GetFileVersionInfo function returns version information about a specified file.
invalid
2003-03-21
打赏
举报
回复
用UltraEdit打开两个文件比较一下,应该在文件头部有版本号的。分析得到规律了自己用文件读写函数判断。
(推荐)Win32
API
大全
首先对Win32
API
函数
做完整的概述;然后收录五大类
函数
: 窗口管理、图形设备接口、系统服务、国际特性以及网络服务; 在附录部分,讲解如何在Visual Basic和Delphi中对其调用。 本书是从事Windows应用程序开发的...
Android安全机制 PPT
版本
有了这些UID和GID之后,应用程序就只能限访问特定的
文件
,一般就是只能访问自己创建的
文件
。此外,Android应用程序在调用敏感的
API
时,系统检查它在安装的时候会没有申请相应的权限。如果没有申请的话,那么访问也会...
PHP7
文件
目录
函数
库实战
King老师精心打造的PHP7
文件
目录
函数
库实战课程,通过讲解PHP7核心
函数
库
文件
、目录
函数
库相关
API
,了解其实际应用场景,并通过在线
文件
管理器对所学内容进行实战演练! 山哥出品,必属精品!
获得当前应用程序执行时所在的目录
在PB中获得当前应用程序执行时所在的目录和Exe名称。使用
API
函数
GetModuleFileNameA。
文件
读写
API
函数
文件
操作
API
函数
详解在VC中,大多数情况对
文件
的操作都使用系统提供的
API
函数
,但有的
函数
我们不是很熟悉,以下提供一些
文件
操作
API
函数
介绍: 一般
文件
操作
API
CreateFile 打开
文件
要对
文件
进行读写等操作...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章