C ++ dlls版本号

时间:2012-06-05 10:51:36

标签: dll versioning

在C ++中创建的所有dll都必须具有版本号吗?我的机器上有dll但是当我右键单击时我无法看到版本号。

P.S:我安装了Win 7。

2 个答案:

答案 0 :(得分:5)

重要的是要理解,在加载DLL 期间,版本号将不会被使用。因此,不需要DLL或程序可执行文件(如.EXE,.OCX,.SYS,.FON等)必须具有的信息。

版本的真正目的是帮助安装程序将计算机上现有的DLL与已安装的DLL进行比较。该案例中最重要的版本是FILEVERSION部分或VERSIONINFO资源。您可以阅读有关API的更多信息,以访问MSDN上的信息。

版本资源非常实用,也可用于支持。如果您将重新分发的DLL中的更改很好地协调到其他计算机或其他客户端,那么版本资源可以帮助您进行故障排除。通过检查DLL的版本,您可以找出发生的问题是否已经众所周知并在更新版本的DLL中得到修复。

答案 1 :(得分:3)

在DLL中包含版本信息不是强制性的。但是,如果您打算发布多个版本,建议添加一些版本信息以用于支持/维护。

以下是add version information to win32 binaries

的方法

你也可以embed version information in an existing exe/dll

编辑:为了目的添加了更多信息(来自Oleg的链接):

  

您可以使用版本信息功能来确定文件的安装位置,并确定与当前安装的文件的冲突。这些功能使您可以避免以下问题:

     
      
  • 在较新版本上安装旧版本的组件
  •   
  • 在没有通知的情况下更改混合语言系统中的语言
  •   
  • 在不同目录中安装库的多个副本
  •   
  • 将文件复制到多个用户共享的网络目录
  •   
     

版本信息功能使应用程序能够查询版本资源以获取文件信息,并以清晰的格式显示信息。此信息包括文件的用途,作者,版本号等。   您可以将版本信息添加到任何可以拥有Windows资源的文件,例如DLL,可执行文件或.fon字体文件。要添加信息,请创建VERSIONINFO资源并使用资源编译器来编译资源。