c++ - 导入库是否跨 dll 版本工作?

标签 c++ dll dllimport

假设该功能仍然存在,导入库是否仍然可以与其他版本的 dll 一起使用? 如果不是:

a) 什么时候会坏,哪些部分会坏

b) 有没有办法确保它在没有 LoadLibrary()GetProcAddress() 的情况下跨版本工作?

最佳答案

是的,导入库将适用于不同版本的 DLL。当然,您将无法使用它来调用存在于 DLL 中但未在导入库中定义的函数(例如,在较新版本的 DLL 中添加的函数)。

请注意,我假设不同版本的 DLL 没有修改过的函数名称和/或序号(以导入库使用的为准)或修改过的函数签名。换句话说,我假设 DLL 的开发人员遵循公认的良好做法来维护 DLL 版本之间的兼容性。

关于c++ - 导入库是否跨 dll 版本工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53150782/

相关文章:

c++ - while (_index != string::npos) 似乎并没有停止循环

c++ - 非常基本的问题 c++) 为什么我的打印答案与我希望得到的不同?

c# - C# 中用于从 DllImport 函数中检索引用的指针

c# - 源 C dll 中是否需要 dllexport 才能通过 [DllImport] 在 C# 中使用?

c++ - 以下抽象工厂设计模式的实现是否正确?

c++ - VIM Doxygen 支持 - 在换行符上自动插入星号 (*)

dll - 使用 ikvm 将 jar 转换为 dll

c# - 如何在 Windows Phone 8 (C#) Framework 中添加 C++ DLL

.net - IBM .net 驱动程序找不到 db2locale.dll

unity-game-engine - Windows.Devices.Bluetooth.dll