• ベストアンサー

visual C++2008 Express 変数宣言等について

sea_clear_skyです。 質問させて頂きます。 <環境> WindowsXP SP3 VisualC++ 2008 Express 現在、VisualC++ 2008 Expressでプログラムの勉強をしています。 VisualC++ Expressでコンソールアプリケーションじゃなく、 Windowsフォームアプリケーションで、変数の宣言(配列)の仕方と message::showで、変数の値を表示させる方法がわかりません。 C/C++などの、コンソールアプリケーションの方法では エラーがでて、実行できなかったので、 Windowsフォームアプリケーション用の記入の仕方があるのでは ないかと思っています。 初心者なので、わからない状態です。 VC++ 2008 EXPRESS 変数宣言 VC++ 2008 EXPRESS 変数 VC++ 2008 EXPRESS データ型 message;;show vc++ VC++ 2008 リファレンス VC++ 2008 入門 等など、たくさんのキーワードでホームページを 検索しましたが、知りたいことが載っている ホームページを見つけることができませんでした。 参考HPや解決方法について、ご教授お願いします。 すいませんが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.5

> '0x3000': この文字を識別子で使用することはできません。 は全角スペースなので > sb->AppendLine(myArr[n].ToString ()); ででているのであれば sbの sの手前からその前の行の;の直後までを選択して『Delete』キーで削除 sbのsの直前にキャレット(カーソル)をおいて『Enter』で改行 といった対処をしてみてください

sea_clear
質問者

お礼

間違えて、質問を解答の補足のところに記入してしまいましたので、 回答することができなかったのではないですか、 真に申し訳ございません。 貴重な時間を無駄にさせ申し訳ありません。 時間があるときでいいので、よければ回答ください。

sea_clear
質問者

補足

忙しいところ回答ありがとうございます。 sbの前の全角スペースを削除したら、無事表示されました。 詳しくご指摘頂きありがとうございました。 Message::showや配列宣言関連のサイトをみつけることができず、 最後にすいませんが、教えていただきたいです。 messagebox;;showで表示されるのが、 A,B,Cじゃなく、65,66,67と表示されます。 A,B,Cと表示させるには、どうしたら、よろしいでしょうか? それと、配列なんですが、一文字の配列じゃなく 長い文字列の配列を宣言するときのデータ型は 何にすれば、いいのでしょうか? String ^ ではエラーが表示され、宣言できませんでした。 何卒よろしくおねがいします。 何回も質問し申し訳ありません。

その他の回答 (4)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.4

'0x3000': この文字を識別子で使用することはできません。 は全角スペースをそのまま貼り付けたからだと思います 'StingBuilder' : 'System::Text' のメンバではありません は StringBuilderのタイプミスです 『r』が抜けたようです '_T': 識別子が見つかりませんでした は _T("Title")を L"Title" にしてください

sea_clear
質問者

お礼

sea_clear_skyです。 何回も回答ありがとうございます。 何回もすいませんが、修正点は変更し、解決しましたが、他のエラーが 次のように、表示されます。 sb->AppendLine(myArr[n].ToString ());の部分で、 次の3つのエラーが表示されます。 1、'0x3000': この文字を識別子で使用することはできません。 2、sb' : 定義されていない識別子です 3、AppendLine' :  左側がクラス、構造体、共用体、ジェネリック型へのポインタで はありません。型は ''unknown-type'' です。 一度、sb->AppendLine(myArr[n].ToString ());の部分と System::Text::StringBuilder ^sb = gcnew System::Text::StringBuilder(); は全部消して、再度、手入力で入力しましたが、エラーが表示されます。まだ、全角の空白が入っているの 時間のあるとき、よろしくお願いします。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

char型の配列ならば array<char>^myArr; と宣言 myArr = gcnew array<char>(20); と確保 myArr[0] = 'A'; myArr[1] = 'B'; myArr[2] = 'C'; System::Text::StingBuilder ^sb = gcnew System::Text::StingBuilder(); for( int n = 0; n < myArr->Length; n++ ) {   sb->AppendLine( myArr[n].ToString() ); } MessageBox::Show( sb->ToString(), _T("Title") ); といった具合でしょう

sea_clear
質問者

お礼

回答ありがとうございます。 忙しいところすいません。 載せて頂いたコードを配列の要素数を3にして、 ビルドしたところ次のエラーがでます。 よろしくお願いします。 必要なものをIncludeかUsingしていないから、 エラーがでてしまうのか、 Expressなので、エラーがでてしまうのか 考えています。 sb->AppendLine( myArr[n].ToString() );の部分が '0x3000': この文字を識別子で使用することはできません。 'StingBuilder' : 'System::Text' のメンバではありません。 error C2065: 'StingBuilder' : 定義されていない識別子です。 'sb' : 定義されていない識別子です。 'StingBuilder' : 'System::Text' のメンバではありません。 ->AppendLine' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。 '->ToString' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。 '_T': 識別子が見つかりませんでした 忙しいところ、すいませんが、時間のあるとき、よろしくお願いします。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

自分で書いてうまく行かなかったコードを補足にどうぞ。

sea_clear
質問者

補足

コードを補足に書かずに申し訳ございません。 回答くださってありがとうございます。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

マネージド配列を使いたいなら arrayクラスを使います array<配列の型> ^変数名; といった宣言をします 配列の確保は 変数名 = gcnew array<配列の型>(要素数); といった具合になります

sea_clear
質問者

お礼

回答ありがとうございます。 配列の型なんですが、文字を使いたいので、charでよろしいでしょうか?

関連するQ&A

  • C#のクラスライブラリでメッセージボックスを表示

    VisualStudio2010でVisualC#のクラスライブラリやコンソールアプリケーションでメッセージボックスを表示させたいのですが、 Windowsフォームアプリケーションでは MessageBox.Show("メッセージ本文","タイトル",MessageBoxButtons.OK,MessageBoxIcon.Exclamation); で表示させることができたのですが、 クラスライブラリやコンソールアプリケーションでの中から表示する仕方が分かりません。(OS WindowsXP VisualStudio2010) 1) VisualC#のクラスライブラリでメッセージボックスを表示させるには public class Class1 { }   の中にどのようなコードを記述すればよいのでしょうか。 2) VisualC#のコンソールアプリケーションでメッセージボックスを表示させるには static void Main(string[] args) { }   の中にどのようなコードを記述すればよいのでしょうか。 よろしくお願いします。

  • visual c++ のグローバル変数宣言について

    visual c++で、 例えば下記のようにグローバル変数宣言するが 下記プログラムの「FileMei1[0][n1] = 0;」のところでブレークをかけてプログラムを走らせると、ウォッチウィンドウで「FileMei1エラー: 識別子 'FileMei1' はスコープ外です」とでてきます。 グローバル変数宣言のやり方間違っているのでしょうか? namespace TestCpp { extern char FileMei1[300][100]={ 0 }; public void aa{ for(n1=0; n1 < 100 ; n1++) { FileMei1[0][n1] = 0; } }

  • Visual C++ 2005 Express Edition

    Visual C++ 2005 Express Edition をWindows2000SP4で使っていて、今とても困っていることが2つあります。 1つ目は、新しいプロジェクトを作成するときに、win32コンソールアプリケーションを選択し、アプリケーションの設定をするときに、windowsアプリケーションを選択したいのですが、勝手にコンソールアプリケーションが選択され、windowsアプリケーションを選択することができません。どうすれば解決することができるのでしょうか。再インストールも試してみたのですが、何も変わりませんでした。 2つ目は、何度か試したのですがSQL Serverをインストールすることができません。これをインストールしないことで何か問題はあるのでしょうか。 特に1つ目のことで困っています。どちらか片方でもいいので教えてください。よろしくお願いします。

  • Microsoft Visual C++ 2005 Express Edition

    いつもお世話になっています。 Microsoft Visual C++ 2005 Express Editionのコンソールアプリケーションで文字色の変更や、文字を表示する位置を指定する方法をご教授いただけますでしょうか? C言語での操作はできますが、C++でのやり方がわかりません。 OSは Windows XP です。 宜しくお願いします。

  • Visual C++ 2010 Expressについて質問です

    Visual C++ 2010 Expressについて質問です Visual C++ 2010 Expressを用いてopenCVを使ったプログラムを作成したいと考えています そこで、インクルードファイルの設定やライブラリファイルの設定を以下のサイトの通りにしたのですが http://d.hatena.ne.jp/blono/20100501 うまくいきません Visual C++ 2008 Expressでは通っていたものをコピーしてビルドしたところ デバッガをVisual Studio 2005のものを使われようとしていました 上記のサイトではWin32プラットフォームアプリケーションにする場合とありましたが Win32コンソールアプリケーションで実行させたい場合にはどうしたらよいでしょうか? 言葉足らずだとは思いますがよろしくお願いします

  • Visual C++とVisual Fortranの変数を共用したい

    FORTRANで作成したサブルーチンを活用し、C++からコールする形でコードを再利用しようと考えています。 C++からFORTRANを呼び出すのはすぐに出来たのですが、データの引渡しで困っています。 FORTRAN側ではグローバルな変数を多数(100個以上)宣言しており、引数としては渡せないのでC++側でも同名の変数を宣言して共用し、データのアクセスをしようと目論んでいます。FORTRAN側のコードは極力触りたくありません。 しかし、FORTRANでexternに相当する宣言の仕方が分からず、うまく同じ領域を共用できるようになっていません。 具体的にどんなことをすれば良いのかご存知の方がいらっしゃいましたら、ぜひご教授願います。 宜しくお願いします。

  • Visual C++2010 Express

    Visual C++2010 Express でのToString()メソッドについて教えて下さい。 私、Microsoft提供の、Visual C++2010 Expressを利用し、勉強を始めたばかりの超ビギナーです。インターネットで探したある「講座」の「ポインタの学習」で、前後は省略しますが、下記コーディングがありました。   //変数の宣言   int b; //ポインタの宣言   int* a; //ポインタの初期化   a=&b; //内容代入   b=5; label1->Text=(*a).ToString(); 私、コードエディターに入力するときに、(*a)を間違って、*aと入力してしまいました。結果はビルド失敗で、エラーメッセージは、「Form1.h(113):error C2228: ‘ToString’の左側はクラス、構造体、共用体でなければなりません。型は‘int *’です。」とありました。その「講座」には(*a).ToString();については、なぜその様に記述するのか、何の説明もありません。エラーメッセージから*aはクラス、構造体、共用体ではないからということになるのでしょうが、( )を付けるとクラス、構造体、共用体のどれかになるということなのですか?(そういう決まりのなっているのですか?)又、ポインタからToString()メッソッドにアクセスする場合には、全て(*a)のように、( )を付けると解釈しておいて良いのですか? 何方か、初心者にも解りやすくご教授頂ければ、幸いです。

  • Visual C++ Express Edition でもprintf

    Visual C++ Express Edition でもprintfを使いたい 私は、Visual C++ 2008 Express Editionを使っています。  以前はVisual Studio 2005 Professionalを使っていました。 今まではプログラムを走らせている間の変数の変化を見るために、 printf関数を使って「出力」ウィンドウに数値を表示させていました。 Visual C++ 2008 Express Editionに変更してから、 同一のソースコードをコンパイル、実行しても printf文で記述した出力内容を「出力」ウィンドウに表示させることができません。 これは、Express Edition特有のものでしょうか? printfを使って変数を表示できる方法があれば教えてください。 よろしくお願いします。

  • Visual C++ 2008 Express EditionでCのコンパイルは可能ですか?

    Visual C++ 2008 Express Editionを使いプログラムをC++で書いていたのですが、 Cで書かなくては駄目な状況になりVisual C++ 2008 Express Edition でもCのコンパイルが出来るのかを教えて貰いたいです。 試してみたところ出来そうになくて困っています。 Visual C++ 2008 Express Editionの導入方法は以下のURLの通りにしました。 http://www.microsoft.com/japan/msdn/vstudio/express/beginners/2008/visualc.aspx なにか追加で入れる事で使える様になるのか、もしくは出来ないのかよろしくお願いします。

  • Visual C++ 2005 Express Edition

    あるC言語をつかったウィンドウズプログラミングの本に載っていたコードを入力してビルドしようとしたら色々とエラーが出てしまい、今度はその本に付属していたCD-ROMに収録されていたコードを使ってビルドしても失敗してしまいました。 そして、その本を書いてらっしゃる方が管理をしているホームページにVC2005になってデータ型のチェックが厳しくなったと書いてありました。 そのサイトには新しくVC2005のサンプルプログラムが紹介されていたのですが、本に載っていたものとは少し違うようです。しかし、それを使ったら難なくビルドも出来て、ちゃんとウィンドウが表示されました。 ということは、今までに出版された本に載っているウィンドウズプログラミングのコードはVisual C++ 2005 Express Edition では使えないということなんでしょうか。 もし知っていらっしゃる方がいましたら、教えてください。よろしくお願いします。

専門家に質問してみよう