2012-02-14 4 views
6

현재 C++ (부스트 포함) 백엔드가있는 교차 플랫폼 응용 프로그램 (Win/OSX/iOS)을 만들고 있습니다. iOS 및 OSX에서 mDNS를 통해 임베디드 장치를 검색하고 백 엔드에 정보를 전달하여 통신 할 개체를 만드는 데 Cocoa Net Service Browser Delegate 기능을 사용하고 있습니다.Windows의 Bonjour/DNS-SD

필자는 Windows MFC 프론트 엔드에서 비슷한 접근 방식을 원했고 정확히 원하는대로 작동하는 것으로 보이는 this 문서를 발견했습니다. 그러나 Bonjour SDK를 사용하면 정말 불쾌한 부작용이있는 것 같습니다. 정적 링크를 사용하여 MFC에 강제로 연결하고 제 경우에는 올바르게 링크 할 수있는 유일한 방법은 디버그 DLL을 전혀 사용하지 않는 것입니다. 이상적이지 않습니다. .

그래서 Bonjour SDK는 내 프로젝트에 너무 많은 제한을 부과하기 때문에 나에게 좋지 않습니다. Cocoa를 사용하면 실제로 기능을 거의 사용하지 않고 있습니다. 단지 didFindService와 netServiceDidResolveAddress입니다. 내가 원하는 것은 주어진 유형의 장치를 찾아 IP 주소를 얻는 것뿐입니다.

누구든지 Windows에서 MFC 프런트 엔드와 함께 사용할 수있는 다른 방법을 제안 할 수 있습니까?

답변

8

내가이 주제를 연구함으로써 모을 수 있었던 것부터 단지 http://www.opensource.apple.com/source/mDNSResponder/mDNSResponder-333.10/으로 가서 소스를 잡아라. dll을 원하는대로 빌드 할 수있게 해주는 VC 프로젝트 파일이 있습니다.

+0

감사합니다. 소스에서 DLL을 빌드하고 시스템 DLL 대신 링크했습니다. 컴파일 된 DLL을 제품과 함께 보내야하기 때문에 이상하지 않습니다.하지만 Bonjour가 이미 설치되어 있는지 확인하지 않아도됩니다. 정말 부끄러운 일입니다. OSX 및 iOS에서 매우 간단합니다. – Redeye

+0

나는 앞으로 6 개월 정도면 상황이 나아질 것으로 기대합니다. Apple이 Frankenstein을 덜 만들고 iTunes와 동기화하고 iCloud로 푸시하는 코드를 풀기 위해 툴링을 사용하는 것 같습니다. 나는 코드를 정리해야한다. –

+2

tarball은 다음 사이트에서 사용할 수 있습니다. http://www.opensource.apple.com/tarballs/mDNSResponder/ – Patrick