MFC AppWizardのダイアログベースを使用してtcp/ip通信をしたいのですが、wsockを使ってみたら大量のエラーが出てしまいます。wsockは使用できないのでしょうか?
編集 削除どのようなエラーが出たのですか?
WinSock API群であれ,CAsyncSocket系統であれ,
MFCダイアログアプリケーションであっても問題なく利用可能なはずです。
さっそくありがとうございます。
主にこのようなエラーが出ます
c:\microsoft visual studio\vc98\include\winsock2.h(143) : error C2011: 'timeval' : 'struct' で示される型としてすでに定義されています。
と
c:\microsoft visual studio\vc98\include\winsock2.h(2333) : error C2375: 'WSACancelAsyncRequest' : 再定義されています。異なるリンケージです。
c:\microsoft visual studio\vc98\include\winsock.h(822) : 'WSACancelAsyncRequest' の宣言を確認してください。
です
今は、BorlandCのプログラムを参考に作っているのですがVisualC++は、始めたばかりでどこにどう記述すればよいのかよくわからないのです。すみません。
プログラムは、Dlg.cppに記述すればよいのでしょうか?
エラーの
c:\microsoft visual studio\vc98\include\winsock2.h(143) : error C2011: 'timeval' : 'struct' で示される型としてすでに定義されています。
のところを、ダブルクリックしたら
/*
* Structure used in select() call, taken from the BSD file sys/time.h.
*/
struct timeval {
long tv_sec; /* seconds */
long tv_usec; /* and microseconds */
};
と出たのでとりあえず消してみたら、このエラーがなくなったのですがこれはよいのでしょうか?
> と出たのでとりあえず消してみたら、
んなムチャクチャな。
システム (Microsoft) の提供するヘッダファイルを書き換えてしまったのですか?
それはダメです。すぐに元に戻してください。
# っていうか VC++ の再インストールが望ましい。
win32 の winsock にはぜんぜん詳しくないのですが、
winsock.h と winsock2.h を両方 include すると誤動作するはずです。
どちらか片方だけに統一すべし。
http://home.a03.itscom.net/tsuzu/programing/tips34.htm
http://www.kumei.ne.jp/c_lang/intro/no_91.htm
すみません。自分でもすぐに気づき元に戻しますた。バカな行為でしたね。
winsock.hをincludeした記憶はないのですが・・・
もう一度最初から作り直してみることにします。
Winsock2.hをインクルードする場合、windows.hよりも先にインクルードしないと
#define あたりがなにか悪さをするという話をどこかで聞いた覚えがあります。
とりあえず、確認してみてください。
コンソールアプリケーションで実行したらうまく動くのですが、ダイアログベースで実行したらうまくいきません。ボタンをクリックしたら通信を開始したいのですが。
ちなみにインクルードはwinsock2しかしてないのですが上のようなエラーが出ます。初期設定か何かが間違っているのでしょうか。
ダイアログを作るときに「WOSAをサポートしますか?」の所のwindowsソケットにチェックは入れるのですか?
一番最初にwinsock2.hをインクルードしたらできました。皆さんご迷惑をおかけしました。ありがとうございます。
編集 削除