我有一个问题,我在网上找不到答案。我想从我的 c# 代码中调用一个 c++ 函数。c++ 函数声明为:
int read(InfoStruct *pInfo, int size, BOOL flag)
具有以下结构
typedef struct
{
int ID;
char Name[20];
double value;
void *Pointer;
int time;
}InfoStruct;
在我的 C# 代码中,我写道:
public unsafe struct InfoStruct
{
public Int32 ID;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
public string Name;
public Double value;
public void *Pointer;
public Int32 time;
};
[DllImport("mydll.dll", SetLastError = true, CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]
public static extern unsafe int read(out MeasurementInfoStruct[] pInfo, int size, bool flag);
我试图运行代码,但它崩溃了,所以我想我在结构上犯了一个错误,特别是 void* 但我不知道该放什么。也可能是函数返回一个结构数组,也许我没有正确调用它。你能帮我解决这个问题吗?多谢。