CStringをunsigned charへ変換するには。 – プログラミング – Home

通知
すべてクリア

[解決済] CStringをunsigned charへ変換するには。


さち
 さち
(@さち)
ゲスト
結合: 15年前
投稿: 2
Topic starter  

環境:WinXP(SP3) VC++2008 MFC

VC++6.0では以下のコードで実行ができていました。
--
CString str = aaa;
if((unsigned char)0x05 < str){
TRACE0(down);
}else{
TRACE0(up);
}
--

しかし、VC++2008では以下のエラーが出ています。
--
error C2678: 二項演算子 '<=' : 型 'unsigned char' の左オペランドを扱う演算子が
見つかりません (または変換できません)
--

CStringをunsigned charへの変換はどのように行うのでしょうか。


引用未解決
トピックタグ
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

ほんとにunsigned char* (文字列)ではなく、unsigned char (一文字)ですか?

文字列の変換であれば、VC2008はデフォルトでCStringがwchar_t相当なので、
charにはならんのです。

> CStringをunsigned charへの変換はどのように行うのでしょうか。

・CStringではなく明示的にCStringA (char用)を使う。
・CT2Aを使う。(MFC/ATLの機能)


返信引用
wclrp ( 'o')
 wclrp ( 'o')
(@wclrp ( 'o'))
ゲスト
結合: 18年前
投稿: 287
 

VC6で動くとしても文字列を0x05と比較する意味が判らん。
ええのか


返信引用
Baby Chicken
 Baby Chicken
(@Baby Chicken)
ゲスト
結合: 16年前
投稿: 45
 

あまり知識も無いのに発現します。
多分これはUNICODEでの問題かと思います。2009/05/20の僕の質問「UNICODEのSDIでテキ
ストを画面に表示」に対して皆様方がとてもご親切に回答して頂いております。
とはしても、ちなみに僕もwclrp様と同じ意見です。


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

VCの設定をMBCSにするてもありますが、
いずれにせよ、以下に同感です。
> VC6で動くとしても文字列を0x05と比較する意味が判らん。


返信引用
さち
 さち
(@さち)
ゲスト
結合: 15年前
投稿: 2
Topic starter  

皆様。
遅くなりました。
結論としてコード丸書き換えをしてunsigned charで
比較をしました。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました