【问题标题】:C++ dlls version numberC++ dll 版本号
【发布时间】:2012-06-05 10:51:36
【问题描述】:

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

P.S : 我已经安装了 Win 7。

【问题讨论】:

  • 这不是必须的,那些 DLL 只是没有版本资源。所以仍然有公司不对其 DLL 和应用程序进行版本控制,我们应该立即将它们发送到 DLL Hell :)

标签: dll versioning


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    这是add version information to win32 binaries

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2010-12-04
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 2015-07-01
      • 2012-09-01
      • 1970-01-01
      相关资源
      最近更新 更多