• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:winpcapを用いたプログラミング)

winpcapを用いたプログラミング

このQ&Aのポイント
  • Visual C++ 2010 Expressを使用してwinpcapをプログラミングする方法について説明します。
  • winpcapを使用してプログラムをコンパイルすると、includeファイルのエラーが発生することがあります。
  • エラーの原因は、pcap.hファイル内の#if defined(WIN32)の部分にあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

VC++2008EEで試しました。 http://www.winpcap.org/devel.htm からDLしたWinPcap 4.1.2 Developer's Packは展開して、VC++2008EEのディレクトリにIncludeとLibを追加。 # 2010ではユーザー設定ではなく、各ソリューション(プロジェクト)の方で設定するだけで、共通設定はなくなった…かな?<VC++ディレクトリの設定 で……WinPcapのヘッダのインクルードガードとかがいまいち…なのかも知れません。 # WindowsSDKの方がいまいち…なのかなぁ。 #include "pcap.h" #include <stdio.h> #include <Windows.h> int main() { return 0; } で、普通にビルドが通っています。 まぁ、中身は無いのと等しいので実行はしていませんけど。 >#define WIN32 は入れていませんが…問題は出ていませんね。 # ソリューションはWin32コンソールアプリケーションで作成。 # プロジェクトの設定のC/C++コマンドラインを見ると/D "WIN32"がありますし。

gjmpt
質問者

お礼

回答ありがとうございます。 私の設定を見たところ、コマンドラインに/D "WIN32"がありませんでした。 追加すると、エラーなくビルドできました。 とりあえずこのままプログラミングを続けたいと思います。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

個人的には「どちらかというと WinPcap が悪い」という感じかなぁと>#1. ちと読んだ限りでは ・WinPcap (pcap.h) は WinSock2.h を #include する ・Windows.h は WinSock.h と WinSock2.h のいずれも #include されていない場合には WinSock.h を #include する ・WinSock.h と WinSock2.h を両方 #include すると困る ので, 本質的には pcap.h を Windows.h よりも前に #include する というのが解決策です. ただ, これは Windows.h ではどうにも解決できない問題で, WinPcap の方でそう言ってくれていればいいんだけどドキュメントには Include the file pcap.h at the beginning of every source file that uses the functions exported by library. としか書いてないんだよね.... これが at the beginning じゃなくて at the very beginning なら (そして例の方もそれにあわせていれば) まだしも.

関連するQ&A