CArrayの受け渡しについて


 2006-05-26 11:53:50  No: 61941  IP: 192.*.*.*

こんにちは。
環境はWindowsXP、vc++.Net2003(MFC)です。
CArrayについて質問です。

ダイアログの遷移処理を作成してます。
 test1(Test1.h、Test1.cpp)、test2(Test2.h、Test2.cpp)があります。

<Test1.h>
class c_test
{
public:
    int  koumoku1;
    char koumoku2[256];
};
CArray<c_test,c_test&> m_test;
と宣言して、

<Test1.cpp>
DBのデータをm_testにセットしました。

ダイアログをtest1からtest2に遷移した際、
Test2にこのm_test(DBデータ入)を渡したいのですが、

test2.hにどのように宣言したらよいのか分かりません。
test1.cppで、どのよう渡す処理を記述したら良いのかわかりません。

教えてください。

編集 削除
Blue  2006-05-26 15:22:12  No: 61942  IP: 192.*.*.*

プログラム全体で使用する変数とかは、アプリケーションクラスにおくのですがどうでしょうか?

CXXXXAppに共通の変数を宣言し、(CXXXXApp*)AfxGetApp()->m_test のようにして変数を使う。

編集 削除
mikage  2006-05-26 15:55:31  No: 61943  IP: 192.*.*.*

まず、Test1.hのCArray宣言を以下のようにします。

CArray<c_test,c_test&> m_test;

#ifndef _TEST1CPP
extern CArray<c_test,c_test&> m_test;
#else
CArray<c_test,c_test&> m_test;
#endif

そしてTest1.cppの#includeを以下のように変更
#include "Test1.h"

#define _TEST1CPP
#include "Test1.h"

後はTest1.hをTest2.cppで#includeするだけで、
m_testにアクセスできるはずですがいかがでしょう??

編集 削除
Blue  2006-05-26 15:58:19  No: 61944  IP: 192.*.*.*

m_
ってことだから、メンバ変数じゃないのかなぁと思ってるんだけど違うのかな?

編集 削除
mikage  2006-05-26 16:06:36  No: 61945  IP: 192.*.*.*

本人じゃない人がレスするのはおかしいと思いますが、
class定義が完結している直後に宣言があるようなので、
大域変数であると解釈しました、
また渡し方が分からないというのはコンパイルが通らないという風に
勝手に脳内補完しました。

上記Test1.hの内容ではTest1.cpp, Test2.cppの両者で
#includeすると実態が2つ定義されています系の
コンパイルエラーとなるのではないでしょうか?

編集 削除
通りすがり2  2006-05-29 03:48:15  No: 61946  IP: 192.*.*.*

話がこんがらがるから
書いてないことを勝手にするのは補完イクナイ

編集 削除