環境
Win2000 VC++ 6.0
自作ping
ソース元
http://www.geekpage.jp/programming/iphlpapi/send-icmp.php
をコンパイルしたいのですが、出来ません。
実施したこと:
①Windows Server 2003 SP1 Platform SDK Web InstallのPSDK-x86.exe
でフルインストール
②C:\Program Files\Microsoft Platform SDKに移動して
SetEnv.cmd /2000 /RETAIL
を実行
③Win32 Console Applicationでプロジェクトを作成
④VC++ 6.0のツール−オプション−ディレクトリタブで以下を設定
インクルードファイル:
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\INCLUDE
実行可能ファイル:
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\BIN\WINNT
ライブラリファイル:
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\LIB
⑤上記ソースをコンパイル
プロジェクト 'お試し - Win32 Release' 用の中間ファイルおよび出力ファイルを削除しています。
--------------------構成: お試し - Win32 Release--------------------
コンパイル中...
sample.c
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\INCLUDE\IPHlpApi.h(183) : error C2146: 構文エラー : ')' が、識別子 'pStats' の前に必要です。
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\INCLUDE\IPHlpApi.h(183) : error C2061: 構文エラー : 識別子 'pStats' がシンタックスエラーを起こしました。
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\INCLUDE\IPHlpApi.h(183) : error C2059: 構文エラー : ';'
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\INCLUDE\IPHlpApi.h(183) : error C2059: 構文エラー : ','
C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\INCLUDE\IPHlpApi.h(185) : error C2059: 構文エラー : ')'
cl.exe の実行エラー
お試し.exe - エラー 5、警告 0
SDKのインストール方法が、まずかったでしょうか?
すみませんが、お願いします。
libファイルはリンクしましたか?
> (1) Windows Server 2003 SP1 Platform SDK Web InstallのPSDK-x86.exe
> でフルインストール
Platform SDKのバージョンは?
VC++ 6.0のサポートは2003年11月版までですが,その点は大丈夫ですか?
かさのばさん、YuOさんご回答ありがとうございます。
(以下、色々書いていますが、9割あきらめています。。。)
すみません、リンクしておりませんでした。でリンクしようと思ったのですが、
問題が発生しました。
私の環境Platform SDKにicmp.libがありませんでした。
SDKのバージョンに関しては最近のですので全然駄目ですか。
MSDNで調べてみると
http://support.microsoft.com/kb/189120/ja
抜粋:不足するファイルは、次のとおりです。icmplib.lib - Static Library (Object Library)
downloadしようとしたのですがリンク先にある画面からdownload見つけられない。…困った。
http://support.microsoft.com/default.aspx/kb/170591/ja
抜粋:最近の Platform SDK は icmp.lib のみ含んでいます。icmp.dll 内の関数は Win32 API の一部とは考えられていなく、将来のリリースではサポートされないでしょう。
YuOさんの指摘通り、サポートされなくなったのでということですね?
あきらめずに、grepでIcmpCreateFile等を検索し、
IPHlpApi.Lib WS2_32.Libに関数があるっぽいので
プロジェクトの設定-リンクのオブジェクト/ライブラリモジュールに
IPHlpApi.Lib WS2_32.Libを追加。
EXEの作成が成功しました。
そして、実行すると
プロシージャ エントリ ポイント IcmpCreateFileがダイナミックリンクライブラリ
iphlpapi.dllから見つかりませんでした。
というエラーメッセージが出現
調べてみると
iphlpapi.dllはMicrosoft Platform SDKに存在しなく、
C:\WINNT\system32にありました。
→リンクの設定がおかしい? Or SDKのIPHlpApi.LibとC:\WINNT\system32のiphlpapi.dllの内容が合ってない?
私の環境Platform SDKでソースをコンパイル
は不可能…とういうことですね?
→LoadLibrary("ICMP.DLL")でソース修正の必要?
現状、ソースをいじらずやるのはどうも駄目ですね。(あっています?)
Visual C++ 2005 Express Editionをインストールしても
駄目でしょうね。(icmp.libが無いので)(あっています?)
すみません、?ばかりですが、お願いします。
ツイート | ![]() |