0

C++/CLI を使用して初めてのクラス ライブラリを作成していますが、KeyValuePair クラスの Key および Value プロパティにアクセスしようとするとエラーが発生しました。

KeyValuePair<String^, LONG>^ params = gcnew KeyValuePair<String^, LONG>(readerName, hContext);

それにブレークポイントを作成し、Visual Studio 2010 を使用して変数の内容を確認すると、paramsキーと値を保持する 2 つのプライベート変数が正しく表示されますが、キーと値のプロパティについては、「キーが存在しません」などのエラーが表示されます。

ошибка: "System::Collections::Generic::KeyValuePair<System.String ^,int>(params.Key" не существует
4

1 に答える 1

0

LONGは、ジェネリッククラスの引数型として使用するのにおそらく最適なものではありません。構築方法によっては、定義される場合とされない場合があります。代わりに、intまたはlong、さらにはInt32またはInt64を使用してください。

Visual Studioの最新バージョンは、Intellisense for C ++ / CLIをサポートしておらず、多くの場合、監視変数はまったく解読できません。ご覧のとおり、部分的には言うまでもありません。

結論:IDE/デバッガーがC++/CLIコードでうまく機能することを期待しないでください。デバッグストリームに出力するか、独自のコードで変数をテストして、期待どおりに表示/動作するかどうかを確認します。Managed C ++に関しては、デバッガーを信頼しないでください。

于 2012-07-02T21:19:52.140 に答える