2012-02-14 69 views
6

我目前正在研究一個具有C++(帶Boost)後端的跨平臺應用程序(Win/OSX/iOS)。在iOS和OSX上,我使用Cocoa Net服務瀏覽器委託功能通過mDNS發現嵌入式設備,然後將信息傳遞給後端以創建與之通信所需的對象。Windows上的Bonjour/DNS-SD

我想採用類似的方法與我的Windows MFC前端,我發現this文章似乎正是我想要的。然而,使用Bonjour SDK似乎有一些非常令人討厭的副作用 - 強迫你靜態鏈接到MFC,在我的情況下,我可以正確鏈接它的唯一方法是根本不使用調試DLL,這是不理想的。

因此,Bonjour SDK對我來說並不是什麼好事,因爲它對我的項目施加了太多的限制。與可可我實際上只使用了很少的功能 - 只是didFindService和netServiceDidResolveAddress真的。我想要做的就是查找給定類型的設備並獲取其IP地址。

任何人都可以提出另一種解決方法,將與Windows的MFC前端工作?

回答

8

從我已經能夠收集到的研究這個主題只是goto http://www.opensource.apple.com/source/mDNSResponder/mDNSResponder-333.10/並抓住源頭。有一個VC項目文件,可以讓你建立你想要的DLL。

+0

謝謝,這是我最終做的。我從源代碼構建了DLL,並鏈接到了該DLL,而不是系統DLL。這並不理想,因爲我必須將編譯的DLL與產品一起發貨,但它確實避免了必須確保Bonjour已經安裝。這是一個真正的恥辱 - 這在OSX和iOS上非常簡單。 – Redeye 2012-04-19 08:19:43

+0

我預計未來6個月左右事情會好轉。它看起來像蘋果是工具,使iTunes減少科學怪人,並拉出代碼同步等,並推到iCloud。希望我的代碼應該清理乾淨。 – 2012-04-22 23:15:36

+2

請注意,tarballs可以在這裏找到:http://www.opensource.apple.com/tarballs/mDNSResponder/ – Patrick 2013-06-03 22:14:55