Hatena::ブログ(Diary)

Softgels - 北京滞在の日々

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