CStringクラスのMid()の使用方法について

解決


さら  2006-06-21 14:22:25  No: 62260  IP: 192.*.*.*

CStringクラスのMid()の使用方法がわからず、
"error C2679: 二項演算子 '=' : 型 'class CString' の右オペランドを扱う
演算子は定義されていません。(または変換できません)"という
エラーとなってしまいます。


CString a;
char *m;

a = "aabbbcc";
m = a.Mid(3,3);


#include <string>などについても確認中ですが、
何かご教授下さい。
それとMidの使い方についても・・・。
(これであっていますか?)

よろしくお願いします。

編集 削除
Blue  2006-06-21 14:27:22  No: 62261  IP: 192.*.*.*

CStringから取得できるのは LPCTSTR( const char* ) です。

> char *m;
const char *m;

とすればとりあえずコンパイルは通ります。

char*がほしい場合は別の領域を用意して、strcpyなりしてください。

編集 削除
Blue  2006-06-21 14:30:03  No: 62262  IP: 192.*.*.*

ちなみに、Midメソッドの戻り値はCStringなので
一般的には

CString a( _T( "aabbbcc" ) );
CString m = a.Mid( 3, 3 );

となります。

編集 削除
PATIO  2006-06-21 14:51:33  No: 62263  IP: 192.*.*.*

Blueさんの返信で事足りてますが、
CString::MidをMSDNやHELPで調べてみれば、多分エラーの内容も理解できると思うんですが、
調べて見たのでしょうか?
調べてけれどわからなかったと言う場合は、C++言語の勉強が必要ではないかと言う気がします。
MFCを使うのであれば、基本的にC++言語は理解していないと色々難しいです。
コンソールプログラムでC++言語の入門書を勉強してからの方が効率は良いと思います。

編集 削除
さら  2006-06-21 15:40:36  No: 62264  IP: 192.*.*.*

Blueさん、PATIOさん、
回答ありがとうございます。

CString a( _T( "aabbbcc" ) );
CString m = a.Mid( 3, 3 );
で解決しました。
ありがとうございました。

C++言語はまだ全くといっていいほど初心者です。
まずはC++言語を理解しないといけないのですね〜。

編集 削除