error C2248 に関して
VC++2003は問題なかったがVC++2005でビルドすると
error C2248: 'CObject::CObject' : private メンバ (クラス 'CObject' で宣言されている) にアクセスできません
とCFileクラス(CFileクラスはCObjectを継承している)からエラーが出ている。
何のことかよくわからないのでC2248でググッてみると参照に示したページが引っかかった
ボタンなどのCObjectから派生したコントロールを基本クラスに持つ派生クラスを使ってないでしょうか? その派生クラスでコピーコンストラクタやoperator=が定義されていないと、お尋ねのエラーが出た記憶があります。 もちろん、どこかで代入されてる箇所があるから必要なわけですが。 たぶん、関数の仮引数がポインタや参照ではなくて値渡しになってるとかですかね。
CFileを使用している箇所を見てもコピーコンストラクタやoperator=がなされているように見えない。
でも注意深く見ると以下の式が心に引っかかった。
std::vectorfiles(10);
試しにに単体で動かしてみるとエラーが出る。
どこでコピーコンストラクタやoperator=が使われているのか現在調査中
とりあえずは
CArrayfiles; files.SetSize(10);
とやればうまくいった。
参照
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2312605&SiteID=7