CLI ダイアレクト経由でネイティブ C++ コードを呼び出すには、C# インターフェイスが必要です。C# インターフェイスは、必要なパラメーターの前にout属性指定子を使用します。これは、C++/CLIの%追跡参照に変換されます。
メソッドの署名と本体は次のとおりです (ジョブを実行するために別のネイティブ メソッドを呼び出しています)。
virtual void __clrcall GetMetrics(unsigned int %width, unsigned int %height, unsigned int %colourDepth, int %left, int %top) sealed
{
mRenderWindow->getMetrics(width, height, colourDepth, left, top);
}
いくつかのコンパイル時エラー (すべて に関連するnot being able to convert parameter 1 from 'unsigned int' to 'unsigned int &'
) のため、コードはコンパイルされません。
控えめな C++ プログラマーの私にとって、CLI はドイツ語話者にとってオランダ語のように見えます。このラッパーを CLI で適切に動作させるにはどうすればよいですか?