7

是否必须所有用 C++ 创建的 dll 都有版本号?我的机器中有 dll,但是当我右键单击时,我看不到版本号。

PS:我安装了Win 7。

4

2 回答 2

9

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

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

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

于 2012-06-05T13:00:35.140 回答
6

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

以下是向 win32 二进制文件添加版本信息的方法

您还可以在现有的 exe/dll 中嵌入版本信息

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

您可以使用版本信息函数来确定文件应该安装在哪里,并识别与当前安装的文件的冲突。这些功能使您可以避免以下问题:

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

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

于 2012-06-05T12:39:37.903 回答