gpt4 book ai didi

c++ - Windows Server 2008 r2 上 BluetoothGetRadioInfo 的替代方案

转载 作者:行者123 更新时间:2023-11-28 07:01:39 35 4
gpt4 key购买 nike

我有一个基于运行 2008 r2 的 Jenkins CI 服务器构建的 C++ Windows 蓝牙应用程序。该应用程序构建良好,并在安装了 Microsoft 蓝牙堆栈的机器上运行。不幸的是,Server 2008 r2 不支持蓝牙,这会阻止我们在构建服务器上执行 gtest 单元测试项目。

单元测试本身不使用蓝牙堆栈,但由于其他库代码包含对 BluetoothFindFirstRadio 和 BluetoothGetRadioInfo 的调用,单元测试应用程序根本不会运行。这些调用在 bthprops.cpl 中实现,它在 Windows Server 2008 r2 中不存在。

所以我可以通过多种方式解决这个问题,但不幸的是我找不到任何这些问题的答案:

  1. 除了 BluetoothGetRadioInfo 之外,还有其他方法可以获取本地蓝牙设备的地址吗?这将使我能够打破对 bthprops.cpl 的链接依赖。

  2. 有没有办法让 Windows Server 2008 认为机器上有 bthprops.cpl 库?或者甚至欺骗我的单元测试可执行文件,让它认为它在那里可以执行?

  3. 有没有办法在编译时识别我在 Windows Server 上,以便我可以 #ifdef 从我的单元测试项目中删除这些函数?

最佳答案

我建议你使用LoadLibrary/FreeLibrary和GetProcAddress获取BluetoothFindFirstRadio/BluetoothGetRadioInfo/...的函数指针,这样你的应用程序就可以正常运行而不会出现系统错误(“程序无法启动,因为bthprops.cpl从您的计算机。请尝试重新安装该程序以解决此问题。"),无论是否存在 bthprops.cpl。

关于c++ - Windows Server 2008 r2 上 BluetoothGetRadioInfo 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22386730/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com