2009-03-22
CSocketのクラスを作ったら不具合が出た
VSでCSocketクラスを作ったらちょっとした不具合が発生。MFCのプロジェクトから利用する場合は問題なかったが、win32コンソールアプリケーションのプロジェクトから利用した場合は問題が発生(←なぜかこっちだけ。原因不明。)。自作のCSocketクラスをnewしているつもりが、newできていなかった。コンストラクタでブレークポイントを張ったがこなかった。VSが持っているCSocketをnewしているのだろう。「CSocket」なんて名前のクラスを作ったとき、Windowsがすでに持っていそうであやしいなと思ってたが、やはりあたりが出た。名前空間を利用して問題を回避しても良かったけど、「CNonSSLSocket」として対処した。
でも不思議なことに、CSocketはCSocketBaseというクラスを継承していたんだけど、CSocketBaseの関数は呼び出せていた。なので、なかなか自作の「CSocket」がnewされていないと気付かなかった。んー、書いていても現象が支離滅裂。まあ重複しそうなクラス名は使わないか、名前空間を付けてあげるかのどちらかをすべき、ということを学んだ。
トラックバック - http://d.hatena.ne.jp/Softgels/20090322/1237738201
リンク元
- 2 http://d.hatena.ne.jp/lonlon2007/20090317/1237298299
- 1 http://209.85.175.132/search?q=cache:gN9j-BwVLjsJ:d.hatena.ne.jp/Softgels/20090303/1236060637+boost+ssl&cd=1&hl=ja&ct=clnk&gl=jp&lr=lang_ja&client=firefox-a
- 1 http://blogsearch.google.co.jp/blogsearch?hl=ja&ie=UTF-8&q=xhtml&lr=lang_ja&sa=N&start=50
- 1 http://blogsearch.google.co.jp/blogsearch?q=サーバ/インフラを支える技術&lr=lang_ja&oe=utf-8&rls=org.mozilla:ja:official&client=firefox-a&um=1&ie=UTF-8&sa=N&hl=ja&
- 1 http://blogsearch.google.com/blogsearch?hl=ja&oe=UTF-8&num=50&um=1&ie=UTF-8&q=セマンティック&lr=&as_drrb=q&as_qdr=w
- 1 http://d.hatena.ne.jp/httpmobile?http=//d.hatena.ne.jp/lonlon2007/20090317/1237298299
- 1 http://d.hatena.ne.jp/lonlon2007/
- 1 http://search.yahoo.co.jp/search?p=非同期通信+C++&ei=UTF-8&fl=0&meta=vc=&qrw=0&pstart=1&fr=top_ga1_sa&b=21
- 1 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:en-US:official&hs=SWf&q=boost+function+for_each&start=10&sa=N
- 1 http://www.google.co.jp/search?hl=ja&q=memset+ワイド&lr=lang_ja

