我有一个 c# 中的 windows 窗体应用程序,它使用 c++ 中的函数。这是使用 c++ 包装器完成的。但是,该函数需要使用指针,而 c# 不允许将指针与字符串数组一起使用。可以做些什么来克服这个问题?我已经阅读了使用 marshal 的内容,但我不确定这是否适合这种情况,如果适合,它应该如何与我的代码集成。以下是 C# 代码:
int elements = 10;
string [] sentence = new string[elements];
unsafe
{
fixed (string* psentence = &sentence[0])
{
CWrap.CWrap_Class1 contCp = new CWrap.CWrap_Class1(psentence, elements);
contCp.getsum();
}
}
c++函数声明:
funct::funct(string* sentence_array, int sentence_arraysize)
c++ 包装器:
CWrap::CWrap_Class1::CWrap_Class1(string *sentence_array, int sentence_arraysize)
{
pcc = new funct(sentence_array, sentence_arraysize);
}