コンパイル済みのDLLをC#でインポートすると、C++/CLI関数を表示するにはどうすればよいですか?C++/CLIのグローバル関数アクセシビリティの問題
名前をpublicにするだけでクラスを実行できますが、関数ではそうではなく、構文エラーが発生します。
どうすればいいですか?
ありがとうございました!
コンパイル済みのDLLをC#でインポートすると、C++/CLI関数を表示するにはどうすればよいですか?C++/CLIのグローバル関数アクセシビリティの問題
名前をpublicにするだけでクラスを実行できますが、関数ではそうではなく、構文エラーが発生します。
どうすればいいですか?
ありがとうございました!
CLRはグローバル関数をサポートしていません。それらをC++/CLIで書くことはできますが、コンパイラは特別なクラスを生成してそれらにホームを与えます。クラス名は<Module>
ですが、C#コードからアクセスできません。
public staticメソッドで公開refクラスを宣言することで、まったく同じ結果が得られます。それらにアクセスするのに問題はありません。 C#の静的クラスと同じアイデアからチェックを差し引いたものです。チェックを追加するには、抽象と密封を宣言します。
public ref class Utils abstract sealed
{
public:
void static foo() {}
};
それです!ありがとうございました! – Haix64
C++/CLIはC#とは異なる構文を使用します。 C++で 'public'関数を宣言する方法を知っていますか?ヒント:publicと関数宣言の間にコロンを入れてみてください。 –
さて、C++では、関数をpublicと宣言しています。何もしないだけでどこからでもアクセス可能です。それをグローバル名前空間で宣言します。それが私がLinuxの下でいつもしてきた方法です。ここにはC++/CLIのケースがあります。そして 'public:'はうまくいきません!ありがとう、私はより多くの助けが必要です@CodyGray – Haix64