提问人:Johny Siemano Kolano 提问时间:7/18/2019 最后编辑:marc_sJohny Siemano Kolano 更新时间:7/31/2019 访问量:686
在 DNSAPI 中找不到 DNS 函数
DNS functions not found in DNSAPI
问:
我在开发应用程序时遇到了一个问题,即通过 mdns 浏览本地网络中的设备。在 Windows 7 下,我使用了苹果的 bonjour api,一切都很棒。将 win7 更新到 win10 后,bonjour 仍然可以找到设备,但无法解析与它们的连接。我找到了使用 Windows 10 Microsoft WINAPI 内部解决方案的解决方案,我发现:https://learn.microsoft.com/en-us/windows/win32/api/windns/nf-windns-dnsservicebrowse。
整个DNS功能,如“DnsServiceBrowse”等。但是我无法将它们看到到“windns.h”标题中,就像在文档中指定的那样。即使在dnsapi.dll中,我也找不到这些函数的任何符号。我正在 Visual Studio 10.0.17763.0 下使用 SDK 2017。我的 Windows 10 版本是 1903。我错过了什么吗?
答:
如果使用 Visual Studio,你是否确保你的项目实际使用的是你认为正在使用的 SDK 版本?默认项目设置使用找到的最早的 SDK。
该设置位于项目属性窗口的“常规”页下(“项目 ->属性”、“常规 -> Windows SDK 版本”)。
评论
它位于最新的 Windows SDK 10.0.18362.0 中。
问题解决了,对于无法正常工作的 Bonjour 版本,只需要重新安装 Bonjour 并且一切都可以再次工作,并且构建中的 Windows API 的解决方案是使用 SDK 10.0.18362.0 或更高版本。但是 Visual 2017 安装程序列表中没有那个 SDK,您必须自行卸载它,指定的 SDK 自 VS 2019 起可用(来自安装程序资源) 感谢 Drake Wu 的帮助!
评论
DNSServiceBrowse
dns_sd.h