2012-04-16 28 views
2

我試圖將現有的大型多平臺庫移植到Win8 Metro,但被一些移除的API阻止。瀏覽文檔並查看一些代碼示例並沒有幫助,但我仍然無法找到缺少GetAddrInfoW和getaddrinfo函數的簡單,可靠的替代方法。任何人都可以告訴,這些被刪除的函數提出的替代方案是什麼? AM我只是忽略了文檔中的某些內容?謝謝, GyörgyWin8 Metro上getaddrinfo的語義相同嗎?

回答

0

你確定,這些功能真的不存在了嗎? winsock docs特別提到GetAddrInfoW實際上是在Windows 8 Consumer Preview中擴展的,並且未被刪除。在Windows 8 Consumer Preview和Windows Server 8 Beta上,GetAddrInfoW函數提供對IRI或國際化域名(IDN)解析的支持,該解析適用於在pNodeName參數中傳遞的名稱。Winsock執行Punycode/IDN編碼和這種行爲可以通過下面討論的AI_DISABLE_IDN_ENCODING標誌禁用。「

編輯:再看一遍,它在文檔頂部說它只適用於桌面應用程序。對於Metro Apps,winsock2似乎不可用,並且沒有這兩種功能的等效替代方案。至少我找不到一個。

+0

謝謝你直到。該功能適用​​於Win8,但僅適用於桌面環境。我的問題是關於Metro風格的目標。 (這個幫助頁面上寫着:「僅適用於桌面應用程序」,而在Metro目標的頭文件中聲明#ifdef-ed,這對我來說真的是個壞消息。) – fairlane73 2012-04-16 14:05:18

+0

@ fairlane73:我看到之後正如您在我的編輯中看到的那樣再次查看它。對不起,我忍不住。我期待着像Metro這樣的問題出現。最後,您可能需要咬緊牙關並轉換您的應用程序以使用Windows.Networking命名空間中的可用內容。 – Till 2012-04-16 14:32:28

+0

轉換應用程序絕對不是一種選擇。我們正在討論幾個應用程序使用的基本庫,它們運行在幾個OS-es上。不管怎樣,謝謝你。 – fairlane73 2012-04-16 15:05:17

相關問題