5

コンパイルされた DLL が C# にインポートされている場合、C++/CLI 関数を表示するにはどうすればよいですか?

名前の前にパブリックを付けるだけでクラスでそれを行うことができますが、関数の場合はそうではなく、そうすると構文エラーが発生します。

4

1 に答える 1

10

できません。CLR はグローバル関数をサポートしていません。それらは C++/CLI で記述できますが、コンパイラはそれらにホームを与える特別なクラスを生成します。クラス名は です<Module>。C# コードからはアクセスできません。

public static メソッドを使用して public ref クラスを宣言すると、まったく同等の結果が得られます。それらに問題なくアクセスできます。チェックを除いて、C# の静的クラスと同じ考え方です。抽象的で封印されていると宣言することで、チェックを追加できます。

public ref class Utils abstract sealed
{
public:
    void static foo() {}
};
于 2012-04-17T07:24:45.347 に答える