このマネージ C++ コードを C++/CLI に変換できません。誰かがポインターを与えることができますか (しゃれが意図されています)?
static String *ignoreStrings[];
コードの後半で、Add(string) メソッドが呼び出されます。他の場所では、一部の C# コードで、
new String[]{"foo", "bar"}
上記の ignoreStrings の型に何らかの形でキャストされる関数に渡されます。
私はこの構文を試しました:
static array<String^> ^ignoreStrings;
ただし、その C# 配列からキャストすることはできず、add メソッドもありません。
編集:これが何らかの形で質問を変更することを期待して、より完全なコード...
private:
static String *ignoreStrings[];
public:
void AddIgnoreString(String *ignore)
{
AddOneIgnoreString(ignore);
}
void SetIgnoreStringData(String *ignore[])
{
SetIgnoreStrings(ignore);
}
static void SetIgnoreStrings(String *ignore[])
{
ignoreStrings = ignore;
}
static void AddOneIgnoreString(String ^ignore)
{
ignoreStrings->Add(ignore);
}
他の場所では、C# コードから、次の呼び出しが行われます。
SetIgnoreStrings(new String[]{"foo", "bar"});
これは、C++ コードを次のように変換しようとしたものです。
private:
static array<String^> ^ignoreStrings;
public:
virtual void AddIgnoreString(String ^ignore)
{
AddOneIgnoreString(ignore);
}
virtual void SetIgnoreStringData(array<String^> ^ignore)
{
SetIgnoreStrings(ignore);
}
static void SetIgnoreStrings(array<String^> ^ignore)
{
ignoreStrings = ignore;
}
static void AddOneIgnoreString(String ^ignore)
{
ignoreStrings->Add(ignore);
}
static array<String^> ^GetIgnoreStrings()
{
return ignoreStrings;
}