1

C++ と C# の間で文字列を渡すために推奨される方法は何ですか? 関数の 1 つがパラメーターとして取る C++ クラスがあります。const char var1 and const char var2[]

C# でそのような関数を呼び出すと、関数は引数の型を sbyte* として受け入れます。C# の関数には sbyte* と sbyte** が必要なため、ac#-string を使用するだけでは機能しないようです。

C++ クラス:

public ref class MyClass
{
public:
    void Sample(const char * var1,const char* Var2[]);
}

C# 呼び出し...

class Program
    {
        static void Main(string[] args)
        {
               MyClass oClass = new MyClass();
               string var1 = "Variable1";
               string[] var2 = {"1","2"};
               oClass.Sample(var1,var2);
        }
}

エラー: エラー 1 引数 1: 'string' から 'sbyte*' に変換できません エラー 2 引数 2: 'string[]' から 'sbyte**' に変換できません

マネージド C# からマネージド C++ に文字列引数を渡す方法を理解するのに助けが必要ですか?

4

1 に答える 1

2

char * [] は C# 文字列と同じではありません。マネージ C++ では、次のように String^ が必要です。

public ref class MyClass
{
public:
    void Sample(String^ var1, array<String^>^ var2);
};
于 2013-05-16T07:08:57.180 に答える