有条件地跳过DLL依赖项

conditionally skipping dll dependencies

本文关键字:依赖 DLL 有条件      更新时间:2023-10-16

我正在使用Visual Studio 2012编写一个Win8桌面应用程序来监控蓝牙状态(以及其他功能)。我指定了Bthprops。库中的项目属性->附加依赖项。我用蓝牙代码构建了一个DLL,并从c#项目中调用它。

一切都在Win8上运行良好。然而,当我的应用程序在Windows Server 2012上运行时,在启动时,我无法加载DLL,因为win Server 2012不支持蓝牙,也没有依赖的bthprops.cpl。

由于我希望我的应用程序在多个平台上工作(并且不希望用户安装额外的组件),在平台没有所需依赖文件的情况下,我希望应用程序能够启动,跳过执行蓝牙代码,并执行其余的功能。

这可能吗?我该如何做到这一点?

谢谢

我担心你必须使用LoadLibrary()动态加载dll。有了它,你就不需要依赖startup了。此外,还可以检查加载是否成功。如果没有,则该组件未安装。这使得延迟加载机制更容易被误用。

在这种情况下,您不使用库文件。相反,您只需使用头文件或使用GetProcAddress()

找到适当的dll函数。