我有一个与某些第三方动态库链接的c++应用程序。我的一些主要类继承自这些库,并对这些库进行函数调用,等等。我的应用程序在理论上不包含那些库的情况下运行(即,如果我手动剥离了与那些库有关的所有代码和引用,它将仍然可以正常使用),但功能会受到更多限制。如果可以进行类比,请想象我已经创建了Windows记事本克隆,并包括一个3rd party库,该库允许用户在文档中嵌入图片和视频。
分发应用程序时,我的客户端可能没有安装那些库。有没有一种方法可以让我的程序检测所需的DLL库是否存在,并且如果未安装所有相关代码,则直接忽略它们?
当前,如果我在没有安装第三方库的情况下运行我的应用程序,它将显示与缺少的DLL相关的错误并崩溃。一个明显的解决方案是简单地发布应用程序的两个版本……一个不带外部依赖关系,一个不带外部依赖关系,但是我想避免像这样独立地管理两个产品。
最佳答案
有这样的选项“延迟加载dll”