掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CArrayについて (ID:70334)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
VS2003.netでMFCを使って趣味で勉強しています。 SDIで作成したプロジェクトにCTemplクラスを追加して CTempl::CTempl() : m_strName(_T("nagasawa")) , m_strAddress(_T("tokyo")) { } CTempl::CTempl(CString strName, CString strAddress) { m_strName = strName; m_strAddress = strAddress; } としました。 CXXXDoc.h にCArrayのテンプレートを宣言、.h、.cppに関数を追加。 public: CArray<CTempl*, CTempl*&> m_caTempl; ---------------------------------------------------- void CXXX02Doc::myTest(CString strname, CString straddress) { CTempl* pObj = new CTempl(strname, straddress); INT_PTR iObj = m_caTempl.Add(pObj);//カウントは上がるが、CXX0030:エラーです:式を評価できません int nNum = m_caTempl.GetSize(); for(int nI=0; nI<nNum; nI++) { INT_PTR ip = (INT_PTR)nI; CTempl* pcaObj = m_caTempl.GetAt(ip);// ここでは落ちません。 CString str0 = pcaObj->m_strName;// 実行時、ここで落ちる } return; } コンパイルが通るのですが、XXXViewのメニューから呼び出すと ハンドルされていない例外が発生しました。 読み込み中にアクセス違反が発生しました。 pcaObjが CXX0030:エラーです:式を評価できません とエラーになります。 CArrayを使わずに配列なら問題なく処理されるのですが CTempl* m_pTempl[100]; m_caTempl.Add(pObj);でカウントは上がるけれど何故駄目なのか 訳が分からなくなってしまいました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.