簡體   English   中英

在帶有VS2012 / w Update 3的Windows 7上構建的C ++程序無法在WinXP SP3上運行

[英]C++ Program built on Windows 7 with VS2012 /w Update 3 does not run on WinXP SP3

我有一個使用Visual Studio 2012 Update 3在Windows 7盒上編譯的程序。在構建該程序時,選擇了“ Visual Studio 2012-Windows XP(v110_xp)”平台工具集。 但是,當我嘗試在Windows XP SP3機器上運行二進制文件時,出現以下錯誤:

“過程入口點inet_ntop不能位於動態鏈接庫WS2_32.DLL中。”

現在,我非常確定我知道此錯誤的含義:這意味着DLL加載器無法在WinXP框上的WS2_32.DLL中找到inet_ntop()函數。 知道這只會解決問題的症狀而不是問題的根源,我將WS2_32.DLL從Win7框中復制到了在WinXP框中裝有EXE的相同目錄中。 我通過了該錯誤,只是將其替換為類似的錯誤,但這一次是指在MSVCRT.DLL中找到的函數。

奇怪的是,這次將MSVCRT.DLL從Win7框中復制到WinXP框中並沒有使我通過錯誤。

有人知道我需要做些什么才能在WinXP上運行該二進制文件嗎? 如果涉及到這個問題,我將在虛擬機中設置WinXP開發環境,然后從那里進行構建。 此時需要做很多工作,所以我寧願繼續在Win7機器上進行構建。

謝謝!

根據MSDN, inet_ntop()僅適用於Windows Vista和更高版本。

如果只需要使用IPv4,則可以使用inet_ntoa() ,否則,可以使用inet_ntoa()文檔的“ 備注”部分中提到的Winsock函數WSAAddressToString()WSAStringToAddress()

截圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM