2012-02-14 9 views
6

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?

Odpowiedz

8

Z tego, co udało mi się zebrać od zbadania tego tematu, właśnie dostałem http://www.opensource.apple.com/source/mDNSResponder/mDNSResponder-333.10/ i zgrałem źródło. Istnieje plik projektu VC, który pozwoli Ci zbudować bibliotekę DLL, jak chcesz.

+0

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

+0

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. –

+2

Należy zauważyć, że tarballs są dostępne tutaj: http://www.opensource.apple.com/tarballs/mDNSResponder/ – Patrick