マネージ C++ クラス ライブラリ ("Rem") から呼び出すネイティブ C DLL がいくつかあります。「Rem」クラス ライブラリには、1 つのネイティブ C++ クラス (api) と 1 つのマネージ C++ クラス (API) があります。
マネージ クラス (API) は、現時点では C# コンソール アプリケーションから呼び出されます (後で Web アプリケーションで使用されます)。
デバッグ時には、ネイティブ コードを問題なくステップ実行できます。
私の問題は、デバッグ中に、ローカルで宣言された単純な型以外の変数の値が表示されないことです。
関数パラメーターはデバッガーで使用できません。ウォッチとして追加しようとすると、「エラー: 識別子 'schema_name' がスコープ外です」と表示されます ('schema_name' は変数名です)。
構造体は、クイック ウォッチとウォッチ ウィンドウの両方で、値 "{...}" を表示するだけです。
構造体のフィールドにウォッチを追加しようとすると、「エラー: 'entryList.numItems' が存在しません」という値が表示されます。
私が試したこと:
Managed C++ でコンソール アプリケーションを作成して、それからデバッグしようとしましたが、同じことです。
Tools->Options->Debugging->General->Managed C++ Compatibility Mode のチェックを外してみましたが、コードにまったくステップ インできませんでした (ブレークポイント用にシンボルがロードされていません)。
C# コンソール アプリ プロジェクトで、[プロパティ] -> [デバッグ] に移動し、[ネイティブ コードのデバッグを有効にする] にチェックを入れました (チェックを外しました)。
C++ クラス ライブラリで、Properties->Debugging->Debugger Type に移動し、"Mixed"、"Native"、"Managed"、"Auto" を試しました。
私が間違っていることに関する提案はありますか?