【问题标题】:Import library <-> dynamic link library compatibility导入库 <-> 动态链接库兼容性
【发布时间】:2012-11-09 09:41:52
【问题描述】:

考虑以下模型情况:

  1. DLL 接口未更改,但实现会更改。是否需要将可执行文件与新的导入库链接?应用程序和 DLL 都在同一个 IDE 中使用同一个编译器和链接器进行编译和链接。

  2. DLL 接口未更改,但实现会更改。新版本的应用程序和 DLL 在 IDE 版本 2.0 中编译和链接(象征意义,例如替换为 C++ Builder XE2)。是否可以将应用程序二进制文件与在 IDE 1.0 版本(例如 C++ Builder 6)中编译的旧版本导入库链接?程序是否可以正常运行而不会出现一些运行时错误(例如访问冲突)?

【问题讨论】:

    标签: c++ dll compatibility executable


    【解决方案1】:

    使用相同的编译器制造商和版本,即使名称混乱也会相同,因此您应该可以使用 #1。

    #2 可以,这意味着它可能会引入可能会咬你的名称修改兼容性。如果您的导出都是“C”样式(简单名称)和/或通过 .def 文件硬映射到未损坏的 id(或者您按序号加载,这些天似乎再也没有人这样做了),#2还是可以的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      • 2011-03-22
      • 1970-01-01
      • 2012-06-28
      相关资源
      最近更新 更多