你找不到很多教程的原因是它真的没什么.您将托管结构从C#传递到C++/CLI,就像使用另一个C#类/方法一样
说你在C#中有结构:
public struct TheStruct
{
public int i;
public String str;
}
Run Code Online (Sandbox Code Playgroud)
您将在C++/CLI中编写一个如下所示的方法:
// *.h
void PassStruct(TheStruct ^myStruct);
// *.cpp
void classnamegoeshere::PassStruct(TheStruct ^myStruct)
{
int j = myStrict->i;
String ^localStr = myStruct->str;
}
Run Code Online (Sandbox Code Playgroud)
所以,有几个笔记......
您需要注意不要创建循环引用,因此您可能希望在C++/CLI中定义TheStruct,在这种情况下它看起来像:
public ref struct TheStruct {public:int i; String ^ str; }
容易想到吗?