プロが教えるわが家の防犯対策術!

Visual C++ 2008 Express EditionにてWinInet.hを使いたいのですが、インクルードすると283件のエラーが吐き出されます。
そのエラーの内容はWinInet.hのソースに不備があるというもので、「;」による構文エラー、型指定がありません、シンボルがオーバーロードできないなどです。
しかしエラー箇所のソースに不備はありません。色々調べましたがこの現象に該当するものが見つかりませんでした。

WinInetを使うときは何か特別な手続きが必要なのでしょうか?
WinSock.hのインクルードだとエラーなくコンパイルできるのですが・・・。

A 回答 (1件)

どういうエラーが出るかそのエラーメッセージを書かないと回答が


もらえませんよ。
因みに、そのエラーは他のヘッダファイルで定義されている識別子が
使われているからで、 windows.h を wininet.h よりも前で
インクルードすればでなくなると思います。

#include <windows.h>
#include <wininet.h>

この回答への補足

回答ありがとうございます。

Windows.hもインクルードしなければいけなかったのですね。
Windows.hをインクルードするとWinInet.hのコンパイルエラーは出なくなったのですが、Windows.hのインクルードに因るエラーが33件出てしまいました。

>>>>>
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\objidl.h(5934) : error C2872: 'IDataObject' : あいまいなシンボルです。
1> 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\objidl.h(251) の可能性があります : System::Windows::Forms::IDataObject IDataObject''
1> または 'c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : System::Windows::Forms::IDataObject'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\objidl.h(5934) : error C3699: '*' : この間接指定を型 'IDataObject' で使用できません
1> コンパイラは、解析を続行するために '*' を '^' で置き換えます

<< 省略 >>

1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\objidl.h(5948) : error C2371: 'IDataObject' : 再定義されています。異なる基本型です。
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\objidl.h(251) : 'IDataObject' の宣言を確認してください。
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\objidl.h(6328) : error C2371: 'IMessageFilter' : 再定義されています。異なる基本型です。
1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\objidl.h(263) : 'IMessageFilter' の宣言を確認してください。

<< 省略 >>

1>c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(235) : error C2872: 'IServiceProvider' : あいまいなシンボルです。
1> 'c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(103) の可能性があります : IServiceProvider'
1> または 'c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider'
<<<<<

原因を探ってみましたが自己解決できませんでした・・・。どなたかご教授願います!

補足日時:2008/10/10 12:23
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!