何もしてないのにビルドエラー – 固定ページ 2 – プログラミング – Home

何もしてないのにビルドエラー
 
通知
すべてクリア

[解決済] 何もしてないのにビルドエラー

固定ページ 2 / 2

aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
Topic starter  

これかなー?

http://support.microsoft.com/default.aspx?scid=kb;JA;822334


返信引用
あいる
 あいる
(@あいる)
ゲスト
結合: 20年前
投稿: 55
 

それは関係ないっぽいですねぇ・・・
というか、それ以前に私の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 をインクルードしないってことですね。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました