C++BUILDER 获取文件版本号的源代码
来源:互联网 发布:手机数据漫游要不要开 编辑:程序博客网 时间:2024/05/22 17:28
最近做一个自动升级程序,发现需要取DLL或EXE的版本号,通过版本号比较才知道需不需要升级,看了一些网上的材料,有的太复杂,有的明显对SDK API理解不够,写个函数出来供大家参考:
bool __fastcall GetFileVer(String FileName, String &Ver)
{
unsigned int iZero = 0, iLen = 0;
Ver = "";
iLen = GetFileVersionInfoSize(FileName.c_str(), (unsigned long *)&iZero); // 获取到底需要多大内存缓冲区
if(iLen > 0)
{
char *Buffer = new char[iLen+1];
try
{
if(GetFileVersionInfo(FileName.c_str(), NULL, iLen, Buffer) != 0) // 获取版本信息放入缓冲区
{
iLen = 0;
VS_FIXEDFILEINFO *FileInfo = NULL;
if(VerQueryValue(Buffer, "//", (void **)&FileInfo, &iLen) != 0) // 只查询VS_FIXEDFILEINFO的版本信息
{
#ifdef _DEBUG
if(iLen != sizeof(VS_FIXEDFILEINFO))
{
throw Exception("GetFileVer Failure !");
}
#endif
if(FileInfo != NULL)
{
Ver = IntToStr(FileInfo->dwFileVersionMS / 0x10000) + "." + IntToStr(FileInfo->dwFileVersionMS % 0x10000);
Ver += "." + IntToStr(FileInfo->dwFileVersionLS / 0x10000) + "." + IntToStr(FileInfo->dwFileVersionLS % 0x10000);
return true;
}
}
}
}
__finally
{
delete []Buffer;
}
}
return false;
}
- C++BUILDER 获取文件版本号的源代码
- QT 获取文件的版本号
- C++BUILDER的文件操作
- C++BUILDER的文件操作
- C++BUILDER的文件操作
- C++BUILDER的文件操作
- C#中获取版本号的方法
- C#中获取版本号的方法
- C#中获取版本号的方法
- VB中获取EXE文件的版本号
- VC获取某文件的版本号
- VC 获取 exe 文件的版本号
- VC获取某文件的版本号
- 获取文件版本号
- VC获取文件版本号
- 获取window文件版本号
- c++ 获取文件版本号
- 语音和视频的相关代码(c++builder完整源代码)
- javamail总结(一)
- 无惧上传类v2.2的一个BUG
- C实例程序
- sap sql删除UDO中的数据
- The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.p
- C++BUILDER 获取文件版本号的源代码
- main(argc,argv) 中的参数
- javamail总结(二) 电子邮件协议SMTP(转载)
- 文件加密与加盐及引深应用
- linux下编译安装飞信
- javamail总结(三) 电子邮件协议POP3(1)(转载)
- JS打印和报表输出
- web.config的相关配置
- javaMail总结(四)邮件协议解析