2008 r2가 실행되는 Jenkins CI 서버에 구축 된 C++ Windows Bluetooth 응용 프로그램이 있습니다. 응용 프로그램은 잘 빌드되고 Microsoft Bluetooth 스택이 설치된 컴퓨터에서 실행됩니다. 불행하게도, 서버 2008 r2에는 블루투스 지원이 없으므로 빌드 서버에서 gtest 유닛 테스트 프로젝트를 실행할 수 없습니다.Windows Server 2008 R2의 BluetoothGetRadioInfo에 대한 대안
단위 테스트 자체는 Bluetooth 스택을 사용하지 않지만 다른 라이브러리 코드에는 BluetoothFindFirstRadio 및 BluetoothGetRadioInfo에 대한 호출이 포함되어 있으므로 단위 테스트 응용 프로그램이 전혀 실행되지 않습니다. 이러한 호출은 Windows Server 2008 R2에는없는 bthprops.cpl에서 구현됩니다. 이외의 로컬 블루투스 장치의 주소를 획득하는 다른 방법이 있습니까
1) :
그래서 나는 여러 가지 방법으로이 문제를 해결할 수 있지만, 불행하게도 나는이 질문의 대한 답변을 찾을 수 없습니다 BluetoothGetRadioInfo? 이렇게하면 bthprops.cpl에 대한 링크 의존성을 깨뜨릴 수 있습니다.2) bthprops.cpl 라이브러리가 컴퓨터에 있다고 생각하여 Windows Server 2008을 속일 수있는 방법이 있습니까? 또는 실행 가능한 유닛 테스트 실행 파일을 거기에 있다고 생각하도록 속일 수 있습니까?
3) Windows Server에서 컴파일 타임에 인식하여 유닛 테스트 프로젝트에서 #ifdef 함수를 사용할 수 있습니까?
감사합니다.
추가 정보 : "컴퓨터에서 bthprops.cpl이 없기 때문에 프로그램을 시작할 수 없습니다.이 문제를 해결하려면 프로그램을 다시 설치하십시오."라는 팝업 창이 나타나면서 단위 테스트 exe가 실패합니다. exe에서 리턴 코드는 -1073741515 (C0000135) – Pickles