我有一個C++ Windows藍牙應用程序,它構建在運行2008 r2的Jenkins CI服務器上。應用程序生成良好,並在安裝了Microsoft藍牙堆棧的計算機上運行。不幸的是,Server 2008 r2上沒有藍牙支持,這會阻止在構建服務器上執行我們的gtest單元測試項目。在Windows Server 2008 r2上替代BluetoothGetRadioInfo
單元測試本身不使用藍牙堆棧,但由於其他庫代碼包含對BluetoothFindFirstRadio和BluetoothGetRadioInfo的調用,因此單元測試應用程序根本無法運行。這些調用在bthprops.cpl中實現,而Windows Server 2008 r2中不存在這些調用。
這樣我就可以在幾個方面解決這個問題,但不幸的是我無法找到答案,對這些問題:
1)是否有收購以外的藍牙設備地址的替代方法BluetoothGetRadioInfo?這將允許我打破對bthprops.cpl的鏈接依賴關係。
2)有沒有辦法讓Windows Server 2008認爲bthprops.cpl庫在機器上?甚至欺騙我的單元測試可執行文件認爲它在那裏,以便它可以執行?
3)有沒有一種方法可以在編譯時識別出我在Windows服務器上,這樣我就可以在單元測試項目中使用這些函數#ifdef了?
謝謝!
附加信息:單元測試exe失敗,彈出窗口顯示「程序無法啓動,因爲您的計算機中缺少bthprops.cpl,請嘗試重新安裝程序以解決此問題。」從exe文件返回的代碼是-1073741515(C0000135) – Pickles