导入库< - >动态链接库兼容性

时间:2012-11-09 09:41:53

标签: c++ dll compatibility executable

考虑以下模型情况:

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

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

1 个答案:

答案 0 :(得分:2)

与相同的编译器制造商和版本保持一致,即使是错位的名称也是一样的,所以你应该对#1没问题。

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