0

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

在 Win8 上一切正常。但是,当我的应用程序在 Windows Server 2012 上运行时,在启动时我无法加载 DLL,因为 win server 2012 不支持蓝牙并且没有依赖的 bthprops.cpl。

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

这可能吗?我将如何实现这一目标?

谢谢

4

1 回答 1

2

我担心您必须使用LoadLibrary()动态加载 dll 。这样,您就不必依赖启动了。此外,您可以检查加载是否成功。如果没有,则未安装该组件。这使得误用延迟加载机制成为可取的做法。

在这种情况下,您不使用库文件。相反,您只需使用头文件或使用GetProcAddress()找到适当的 dll 函数

于 2013-04-03T13:47:12.427 回答