【问题标题】:Bonjour/DNS-SD on WindowsWindows 上的 Bonjour/DNS-SD
【发布时间】:2012-03-05 16:43:06
【问题描述】:

我目前正在开发一个跨平台应用程序 (Win/OSX/iOS),它有一个 C++(带有 Boost)后端。在 iOS 和 OSX 上,我使用 Cocoa Net Service Browser Delegate 功能通过 mDNS 发现嵌入式设备,然后将信息传递到后端以创建与它通信所需的对象。

我想对我的 Windows MFC 前端采取类似的方法,我发现 this 文章似乎完全符合我的要求。然而,使用 Bonjour SDK 似乎有一些非常讨厌的副作用 - 迫使您静态链接到 MFC,在我的情况下,我可以让它正确链接的唯一方法是根本不使用调试 DLL,这并不理想.

所以,Bonjour SDK 对我来说并没有什么好处,因为它对我的项目施加了太多限制。使用 Cocoa,我实际上只使用了很少的功能 - 只是 didFindService 和 netServiceDidResolveAddress 真的。我要做的就是找到给定类型的设备并获取它们的 IP 地址。

谁能提出另一种可以在 Windows 上使用 MFC 前端的方法?

【问题讨论】:

    标签: c++ mfc bonjour dns-sd


    【解决方案1】:

    根据我从研究该主题中收集到的信息,只需转到 http://www.opensource.apple.com/source/mDNSResponder/mDNSResponder-333.10/ 并获取源代码。有一个 VC 项目文件,可以让您按照自己的方式构建 dll。

    【讨论】:

    • 谢谢,这就是我最终所做的。我已经从源代码构建了 DLL 并链接到它而不是系统 DLL。这并不理想,因为我必须将我编译的 DLL 与产品一起提供,但它确实避免了确保 Bonjour 已经安装。真可惜 - 这在 OSX 和 iOS 上是如此简单。
    • 我预计未来 6 个月左右情况会好转。看起来苹果正在努力使 iTunes 不再是一个科学怪人,并提取用于同步等的代码并推送到 iCloud。希望我应该清理一下代码。
    • 请注意,这里提供了 tarball:opensource.apple.com/tarballs/mDNSResponder
    • 嘿,伙计们!我意识到这真的很老了,但我有一个愚蠢的问题:如果你自己编译 dll,你仍然依赖 bonjour 服务来安装,对吧?
    • @Shchvova 真的老了!是的,您仍然需要 Bonjour 服务。
    猜你喜欢
    • 2020-12-16
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 2012-05-22
    相关资源
    最近更新 更多