- - PR -
デバッグ中の変数参照について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-09-05 14:10
VS2005のC++/CLIでアプリを作っているものです。
デバッグ中に作成したメソッドの引数に渡されて来る値をウォッチで 見ようとすると「エラー: 識別子 'hensuu' はスコープ外です」とな り中身が見れません。 作成したクラスのメンバ変数は見れます。 C++/CLIは初めてなのですが、メソッドに引数渡しは使わない方がよい のでしょうか。 初心者の質問ですが、宜しくお願い致します。 | ||||||||
|
投稿日時: 2007-09-05 14:37
再現しませんでした。 別のメソッドの変数を式ウォッチに追加しているのだろうと思ったのですが、どうもこのデバッガはそういった判断はせず変数が同名のものは現在のブレークした位置での変数を見ているようです。(良いのかこれで...) 新規プロジェクトで同じ現象が再現するか確認して頂くなりして、現象が再現する最低限のコード (ミニマム コード) を提示して頂けると助かります。
いいえ。 言い方が難しいのですが、引数パラメータで事足りるならどんどん使ってください。 スコープは狭いに限ります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-09-05 16:00
>じゃんぬねっとさん
以下が発生した時のソースです。 ---------------------------- TestClass.h ---------------------------- #pragma once using namespace System; ref class TestClass { public: TestClass(void); // 追加メソッド void func( String^ ); }; ---------------------------- TestClass.cpp ---------------------------- #include "StdAfx.h" #include "TestClass.h" using namespace System; TestClass::TestClass(void) { } // 追加メソッド void TestClass::func( String^ str ){ String^ tmp; tmp = str; } ---------------------------- Form1.h ---------------------------- #pragma once #include "TestClass.h" namespace test2 { (省略) public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: ここにコンストラクタ コードを追加します // TestClass^ aaa = gcnew TestClass(); aaa->func( "あいうえお" ); } (省略) ---------------------------- プロジェクトは、CLRのWindowsフォームアプリケーションで作成しています。 | ||||||||
|
投稿日時: 2007-09-07 11:06
自己解決しました。
C++/CLIの参考書の通り作成していたのですが、 それがダメだった様です。 「TestClass.h」で下記の様にしましたが、 void func( String^ ); 「String^ str」とすることで、参照出来る様に なりました。ヘッダだからといって、型だけでは コンパイルは通りますが、参照は出来ないみたい ですね。 ということで、お騒がせしました。 |
1