通知
すべてクリア
Topic starter
2006年4月10日 11:15 AM
タイトルの通りです。
ある通信を行うクラスAにてソケットの初期化をしています。
これだけならいいのですが別の通信を行うクラスBでもソケットの初期化をしています。
ここでいう初期化というのはタイトルのWSAStartupです。
おのおのが初期化すると2重になるので別のクラスが初期化済みなら
初期化しない処理を入れようと思ってますが何か方法はありますか?
環境はVC.net2003です。MFCアプリ(ダイアログ)で作成してます、
クラスABではソケットAPIを直接よんでます。
MFCの関数を呼ばずにクラス内で初期化する方向で考えてます。
2006年4月10日 11:25 AM
WSAStartupを呼び出すシングルトンを作ってしまって、
クラスAとクラスBのメンバに持たせるというのはいかがですか?
2006年4月10日 11:38 AM
> おのおのが初期化すると2重になるので別のクラスが初期化済みなら
> 初期化しない処理を入れようと思ってますが何か方法はありますか?
何か問題があるのですか?
http://msdn.microsoft.com/library/en-us/winsock/winsock/wsastartup_2.asp
によると,
>An application or DLL can call WSAStartup more than once if it needs to obtain
the WSADATA structure information more than once.
だそうですが。
Topic starter
2006年4月10日 12:56 PM
複数回よんでいいなら安心でです。
そのままで生きたいと思います。
通りすがりさん、Yu0さんありがとうございました