c#.net プロジェクトにマネージド c++ dll を追加しました (「リソースの追加」を使用)。インスタンス化しようとしているクラスは問題なく検出され、コンパイラ エラーは発生しません。しかし、どういうわけか、私がインスタンス化したことがわかっているフィールドは、null 参照例外を取得しています。そのため、フィールドを設定するメソッドの先頭にブレークポイントを配置しました...そして決してヒットしません。.dll のクラスを使用して行をコメント アウトすると、ブレークポイントにヒットします。そのコメントを外すと、メソッドが呼び出されても実行されません。ここで何が起こっているのですか?
dll は ManagedSpyLib で、クラスはControlProxyです。呼び出しは、バックグラウンド ワーカーの DoWork メソッド内で行われます。これは、非同期的に開始されることが最も確実です。スレッド全体が、デバッガーに警告することもなく、静かにクラッシュする可能性はありますか? どうすればこれをデバッグできますか?
ETA: 出力ウィンドウまたはモジュール ウィンドウで dll に関する情報が見つかりませんでした。いくつかのグーグルで修正が見つかりました。ターゲットを.net 3.5フレームワークに変更してください。しかし、私は WTF が進行していることを以前よりも理解できていません。私のコードは機能しますが、今ではその理由がわかりません。これはさらに不可解です。誰かがこの現象を説明できますか?