char配列をCStringに変換する方法とは?

解決


Pen  2010-01-07 19:15:51  No: 71229  IP: [192.*.*.*]

環境はVC2005です。
100バイトの0xffが入ったchar配列があり、
CStringに変換したいのですがどのようにしたら良いでしょうか?

===
char test[100];
memset( test, 0xff, sizeof(test) );

CString strTest;

//testをstrTestにいれたいのですが、分かりません。

ご教授お願いいたします。

編集 削除
 2010-01-07 19:48:22  No: 71230  IP: [192.*.*.*]

strTest = test;
でOKです。
しかしこの変換にどんな意味があるのか非常に気になります。
そもそもcharの0xffをCStringに変換するとどうなるべきなんでしょうか?

編集 削除
επιστημη  URL  2010-01-07 19:49:21  No: 71231  IP: [192.*.*.*]

↓コンストラクタの中から適切なものを探してください。
http://msdn.microsoft.com/ja-jp/library/cws1zdt8(VS.80).aspx

編集 削除
επιστημη  URL  2010-01-07 20:00:38  No: 71232  IP: [192.*.*.*]

> strTest = test; でOKです。

'\0'終端されてないのに?

編集 削除
Pen  2010-01-08 09:00:01  No: 71233  IP: [192.*.*.*]

返信が遅くなり申し訳ありません。

strTest = test;
または、コンストラクタに入れてもASCII文字に変換されてしまい、100バイトの"0xff"が、
"・・・・・・・・・・・・・・・・(100バイト分続く)"
となってしまいます。

期待値は、
"0xff0xff0xff0xff0xff0xff0xff0xff(100バイト分続く)"
となることです。

お手数ですが、ご教授お願いします。

編集 削除
Blue  2010-01-08 11:04:01  No: 71234  IP: [192.*.*.*]

1バイトだったら

#include <stdio.h>

int main()
{
   unsigned char c = 0xff;
   printf("0x%2x\n", c);
   return 0;
}

のような結果を期待していますか?
0xff というのは数値上の表記ですのでそのまま文字列にはできません。
自前でフォーマットするようにしないといけないです。

編集 削除
Pen  2010-01-08 11:38:00  No: 71235  IP: [192.*.*.*]

フォーマットすれば良いのですね。
解決しました。ありがとうございました。

編集 削除