C# 如何使用pinvoke在另一个传递给C DLL的文件中马歇尔结构
我试图弄清楚如何将一个简单的结构嵌入到另一个结构中,该结构从C#传递到C dll。如何对嵌入式结构进行马歇尔分析?精简到最基本的部分C# 如何使用pinvoke在另一个传递给C DLL的文件中马歇尔结构,c#,c,dll,struct,pinvoke,C#,C,Dll,Struct,Pinvoke,我试图弄清楚如何将一个简单的结构嵌入到另一个结构中,该结构从C#传递到C dll。如何对嵌入式结构进行马歇尔分析?精简到最基本的部分 //The C code typedef struct { int a; int b; } A; typedef struct { int c; A myStruct; } B; //The c# code: using System.Runtime.InteropServices; [StructL
//The C code
typedef struct {
int a;
int b;
} A;
typedef struct {
int c;
A myStruct;
} B;
//The c# code:
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public class A{
int a;
int b;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public class B{
int c;
public IntPtr A;
}
仅当B定义为:
typedef struct {
int c;
A* myStruct;
} B;
仅当B定义为:
typedef struct {
int c;
A* myStruct;
} B;