【C++/CLI】c_strはStringのメンバで無いのかどうか

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
わうわう

【C++/CLI】c_strはStringのメンバで無いのかどうか

#1

投稿記事 by わうわう » 12年前

C++/CLIのフォームアプリケーションについて質問です。
コンパイラはVisual Stdio2008です。
C++/CLI歴1日です。
作りたいプログラムは、簡単に言えばウインドウズ標準アプリの電卓です。

テキストボックスtextBox1に、関数Aで以下のように文字列をセットします。
textBox1->AppendText("1");

次に、textBox1のString型文字列"1"を、char型に変換したいと思って、下記のように書いています。
char cTmp[10];
cTmp = textBox1->Text->c_str();
ちなみに、char型に変換したい理由は、この後にatoiしてint型に変換したいためです。

すると、以下のようにエラーメッセージが出ます。
>error C2039: 'c_str' : 'System::String' のメンバではありません。
1>c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : 'System::String' の宣言を確認してください。

c_strはメンバ関数ではないのでしょうか?
そう思った理由は↓のサイトを参考にしています。
http://www.geocities.jp/ky_webid/cpp/library/001.html

ご回答お願いします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: 【C++/CLI】c_strはStringのメンバで無いのかどうか

#2

投稿記事 by h2so5 » 12年前

c_str はC++標準ライブラリの std::string のメンバ関数です。
C++/CLI の String は.net Framework の System::String なので別のクラスです。

http://msdn.microsoft.com/ja-jp/library ... tring.aspx

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: 【C++/CLI】c_strはStringのメンバで無いのかどうか

#3

投稿記事 by h2so5 » 12年前

あとatoiなんて使わずにConvert::ToInt32使いましょう。

コード:

String^ str = "12345";
int i = Convert::ToInt32(str);

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 【C++/CLI】c_strはStringのメンバで無いのかどうか

#4

投稿記事 by softya(ソフト屋) » 12年前

いきなり話をへし折るみたいで悪いのですが、今後スタンダードに成るとは思えないC++/CLIでGUIを作ることを勉強するのはあまり良いこととは思えません。
どうしても必要な場合をのぞいてC#などを使われたほうが良いと思います。
ちなみにC++/CLIのCLR WindowsフォームアプリケーションはVisualStudio2012以降から新規作成のテンプレートから無くなっています。マイクロソフトとしてはメンテ以外はやめて欲しいのでしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

わうわう

Re: 【C++/CLI】c_strはStringのメンバで無いのかどうか

#5

投稿記事 by わうわう » 12年前

返信ありがとうございます。
Stringとstringは別物だったのですね。全て解決しました。

>soft屋さん
同じような事を上司が呟いてました。
しかし少し前に納品した既設のシステムはC++/CLIで書かれており、それの障害対応の工番が発生しまして、
その為に急遽勉強しろという流れで学習しております(汗)。
新規作成のテンプレートから削除とは知りませんでした。
ちなみに、C++/CLIとVBも使っているシステムです。新たに作り直せばいいのにこのシステム…。

ご回答ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る