それは関係ないっぽいですねぇ・・・
というか、それ以前に私のWS2_32.dllにfreeaddrinfoがみあたらないですし
(Dependency Walkerで確認した感じ)
それはそれとしてws2tcpip.hの最後にこんな記述が・・・
#if !defined(_WIN32_WINNT) || (_WIN32_WINNT <= 0x0500)
#include <wspiapi.h>
#endif
・・・。
これでは、_WIN32_WINNT 0x0502 を定義した時点で使われないですね・・・
0x0500だとコンパイルエラーなのに、これはひどい仕打ちです(涙
PSDKソースをいろいろ見た結果・・・
結局シャノンさんの最初の対応どおりで良さそうですね。
stdafx.hの
#include <afxsock.h> // MFC のソケット拡張機能
の部分を
#define GetAddrInfo getaddrinfo
#define FreeAddrInfo freeaddrinfo
#include <afxsock.h> // MFC のソケット拡張機能
とするで・・・
Windows2000等でも動作するものになりそうです。
# CListCtrl や CTreeCtrl とかもそうでしたけど、PG側で再定義しないと
# 使えないライブラリって・・・人の書いたものですしそんなもんですかねぇ・・・
# ちなみに、サンプルChatSrvrは_WIN32_WINNT等のバージョン書き換えだけで
# 問題なく動作しました。どうやらCSocketAddrとか、そのあたりを使用するとき
# に注意が必要なようですね。
# ちなみに、defineを追加するときは_WIN32_WINNT 0x0500でないとまずいですが・・・
# あ、ATLを使わないで記述する分には・・・このdefineとかは特に要らないようです。
# afxsock.h や atlsocket.h をインクルードしないってことですね。