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 ボックスでビルドを続けたいと思います。
ありがとう!