我正在使用Visual Studio 2012编写一个Win8桌面应用程序来监控蓝牙状态(以及其他功能)。我在项目属性中指定了Bthprops.lib - >其他依赖项。我用蓝牙代码构建了一个DLL,并从C#项目中调用它。
Win8上一切运行良好。但是,当我的应用程序在Windows Server 2012上运行时,在启动时我无法加载DLL,因为win server 2012不支持蓝牙,并且没有依赖的bthprops.cpl。
由于我希望我的应用程序在多个平台上运行(并且不希望用户安装其他组件),在平台没有所需的依赖文件的情况下,我希望应用程序能够启动,跳过执行蓝牙代码,并执行其余功能。
这可能吗?我怎么做到这一点?
谢谢
答案 0 :(得分:2)
我担心你必须使用LoadLibrary()动态加载dll。有了这个,你就没有对启动的依赖。此外,您可以检查加载是否成功。如果没有,则不安装该组件。这使得错误使用延迟加载机制成为可能。
在这种情况下,您不使用库文件。相反,您只需使用头文件或使用GetProcAddress()
找到相应的dll函数