CString型での配列処理は出来ない?

[戻る]
マモ 2002/10/04(金) 15:27:20
CString型という便利な型をつかい、テスト的にプログラムを書いてみたところ
test[0]に値を代入する部分でエラーが出てしまいました。
CString型は配列にすることは無理なのでしょうか?
どなたかご教授ください。
ちなみにTest2の部分は通りました。(test[0]を削って実行)

CString test[5];
CString test2;

memset(test,NULL,sizeof(test));

test[0] = "aaaaa";
test2 = "bbbb";

るるち 2002/10/04(金) 15:40:50
[[解決]]
memset(test,NULL,sizeof(test));

が余計だったようです!

CStringの初期化はまとめて出来ないのでしょうか?
(すべてNULL初期化したい)

一応解決です。

ナオーバ 2002/10/04(金) 16:16:12
解決してますが、

CStringの配列はCStringArrayでは駄目ですか?

CStringArray saTmp;
for(int i = 0; i < 10; i++)    saTmp.Add("");
    
みたいにできますけど。

EIJI 2002/10/04(金) 16:16:18
えっと同一人物ですか?
混乱しますので少なくとも同一スレッドで使うハンドルはひとつにしましょう。

で、
>memset(test,NULL,sizeof(test));
なぜ、これが余計なのか分かりましたか?
どうもchar*とCStringを混同しているように思います。

>CStringの初期化はまとめて出来ないのでしょうか?
>(すべてNULL初期化したい)

CStringは作った時点で空っぽです。

るるち 2002/10/04(金) 17:18:24
ご回答ありがとうございます。
CStringArrayは便利ですね。使ってみようと思います。

ただCString型で1つ不思議な点があったので質問させてください。
1つの関数の中で

CString test[5];
test[0] = "aaaaa";

とやる分には問題ないのですが
CString test[5];をクラスのメンバー変数に設定すると
デバッグで確認した際のtest[0]の値が、「CXX0072: Error: タイプ情報がないか認識でき
ません」
と出てしまいます。(別の値1〜4も参照できず)
なぜなのでしょうか・・・?

名前に関しては以後気をつけます!

EIJI 2002/10/04(金) 18:40:24
>CString test[5];をクラスのメンバー変数に設定すると
>デバッグで確認した際のtest[0]の値が、「CXX0072: Error:
>タイプ情報がないか認識できません」
>と出てしまいます。(別の値1〜4も参照できず)
>なぜなのでしょうか・・・?

ブレークしたときのスコープからそのメンバー変数を参照できないからです。
ブレークポイントをそのクラスのメンバ関数内においてみてください。

古いスレッドには追加発言できません。