.NETランタイム(CLR)を対象とするコンパイラがあります。コンパイラの現在のバージョンは、標準のC ++(非管理対象)で記述されています。コンパイラは現在、コンパイル時にアセンブリを参照するためのサポートを欠いているため、.NETライブラリを「インポート」する方法は、.NETで記述されたユーティリティスタブジェネレータを使用することです。これは、アセンブリを反映し、カスタム言語でアセンブリの署名スタブを発行します。 。使用するすべての.NETアセンブリのスタブを事前に生成します。コンパイル時に、コンパイラはスタブファイルをコンパイルしてシンボルテーブルなどにデータを入力し、.NETAPIからタイプとメソッドを解決できるようにします。それが私のバージョンの「使用」です。ただし、これは一時的なものであり、実際の「using」または「import」ディレクティブをコンパイラーに追加したいと思います。コンパイル時に、参照されるアセンブリのメタデータ/タイプ情報にアクセスする必要があります。
私の質問:管理されていないC++からCLRアセンブリメタデータにアクセスする方法についての提案が必要です。または、マネージC ++アプリに変換し、.NETリフレクションサポートを使用する理由が必要です。純粋なC++の目的は、Linux for Monoでもコンパイルできることです。さらに、CLR以外の別のランタイム用の部分的なバックエンドもあります。