C#クライアントで使用できるようにしようとしている「通常の」C++コードの本体があります。これを/CLRで正常にコンパイルしました。これだけでは不十分であることがわかりました。マネージコードからコードを呼び出し可能にするには、マネージラッパークラス( "ref")を導入する必要があります。この質問は、refクラスを導入する前に何が起こったかについてです。
ネイティブC++クラスがC#プロジェクトから表示され、次のように記述できることがわかりました。
MyNativeClass mnc = new MyNativeClass();
...ただし、インスタンスでメソッドを呼び出そうとすると、コンパイラによって拒否されました。C#コードを実行したときに、MyNativeClassコンストラクターが呼び出されなかったことがわかりました。実際、mncをインスタンス化しようとしてもコードがまったく生成されなかったため、エラーなしで完了しました。
C#は私のプロジェクトのネイティブタイプをどのように解釈しましたか?コンパイラがインスタンスのインスタンス化を許可したのはなぜですか?メソッドがタイプ自体とは異なる方法で処理されたのはなぜですか?