有条件地跳过dll依赖项

时间:2013-04-02 20:43:17

标签: c++ c visual-studio-2012 bluetooth windows-server-2012

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

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

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

这可能吗?我怎么做到这一点?

谢谢

1 个答案:

答案 0 :(得分:2)

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

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

找到相应的dll函数
相关问题