Obecnie pracuję nad aplikacją wieloplatformową (Win/OSX/iOS), która ma backend C++ (z Boost). W systemach iOS i OSX używam funkcji delegowania przeglądarki Cocoa Net Service, aby wykryć urządzenie osadzone za pośrednictwem mDNS, a następnie przekazać informacje do zaplecza, aby utworzyć obiekty potrzebne do komunikacji z nim.Bonjour/DNS-SD na Windows
Chciałem przyjąć podobne podejście z moim interfejsem Windows MFC i znalazłem artykuł z this, który wydawał się robić dokładnie to, co chcę. Wydaje się jednak, że używanie pakietu Bonjour SDK ma kilka naprawdę nieprzyjemnych efektów ubocznych - zmuszając cię do statycznego linku do MFC, aw moim przypadku jedynym sposobem, w jaki mogę go połączyć, jest nie używanie w ogóle debugujących bibliotek DLL, co nie jest idealne .
Zestaw SDK Bonjour nie jest dla mnie zbyt dobry, ponieważ nakłada zbyt wiele ograniczeń na mój projekt. Z Cocoa faktycznie używam bardzo mało funkcjonalności - po prostu zrobił naprawdę FindService i netServiceDidResolveAddress. Wszystko, co chcę zrobić, to znaleźć urządzenia danego typu i uzyskać ich adresy IP.
Czy ktoś może zaproponować inny sposób obejścia tego, który będzie działał z interfejsem MFC w systemie Windows?
Dzięki, właśnie to zrobiłem. Zbudowałem bibliotekę DLL ze źródła i połączono z nią zamiast systemu DLL. Nie jest to idealne rozwiązanie, ponieważ będę musiał wysłać moją skompilowaną bibliotekę DLL z produktem, ale nie trzeba się upewnić, że Bonjour jest już zainstalowany. To wstyd - na OS X i iOS jest tak prosty. – Redeye
Spodziewam się, że sytuacja się poprawi w ciągu najbliższych 6 miesięcy. Wygląda na to, że Apple jest narzędziem, które czyni iTunes mniej od Frankensteina i wyciąga kod do synchronizowania itp. I przesyła do usługi iCloud. Co mam nadzieję, że powinienem oczyścić kod. –
Należy zauważyć, że tarballs są dostępne tutaj: http://www.opensource.apple.com/tarballs/mDNSResponder/ – Patrick