【GUI】wxWidgets(旧wxWindows) その2【サイザー】
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
981:デフォルトの名無しさん 06/09/01 23:54:48 MFCから逃れたくてGUIツールキットを探してる人には あまりうれしくないけどね。 982:デフォルトの名無しさん 06/09/02 00:00:58 >>979 wxNGって何? 983:デフォルトの名無しさん 06/09/02 00:30:52 >>982 wx Next Generation == 次世代wx NGは新しいものには何でも使われる定番の名前。 984:デフォルトの名無しさん 06/09/02 01:07:41 >>983 ありがとう。 wxNGをメーリングリストのログやフォーラムを検索してもほとんど言及がないし 唐突に出てくるからNGは一般的な言葉な略語なんだろうなとは思ったが、それだけに うまくNGの意味を検索する術を思いつかなかったw 985:978 06/09/02 07:46:30 ちょっとわかりずらいので書き直し HTTPサーバを想像してください コードはサンプルのものですので、見ればわかります 1.サーバ作成 EVT_SOCKET(SERVER_ID, MyFrame::OnServerEvent) m_server = new wxSocketServer(addr); m_server->SetEventHandler(*this, SERVER_ID); m_server->SetNotify(wxSOCKET_CONNECTION_FLAG); m_server->Notify(true); サーバを作成し、Acceptイベントを登録しています 2.Accept void MyFrame::OnServerEvent(wxSocketEvent& event) sock = m_server->Accept(false); sock->SetEventHandler(*this, SOCKET_ID); sock->SetNotify(wxSOCKET_INPUT_FLAG | wxSOCKET_LOST_FLAG); sock->Notify(true); 接続要求を受け入れ、受信イベントを登録しています 3.データ受信 void MyFrame::OnSocketEvent(wxSocketEvent& event) wxSocketBase *sock = event.GetSocket(); sock->Read(&c, 1); 受信要求があればそれぞれのソケットにReadを掛けます この時、クライアントから同時に複数の接続を行うと、それぞれが別スレッドとしてイベント化されます Readがほぼ同時に別のソケットに対して呼ばれるのですが、イベントハンドラはMyFrameのもので同一です この時、Readは内部でwxYield(GUI更新)を呼び出します wxYieldは1度の関数呼び出し中に2度以上呼んではいけない仕様になっています そこで「wxYield called recursively」というAssertを出してエラー終了します
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4646日前に更新/209 KB
担当:undef