相关疑难解决方法(0)

如何编组指向结构数组指针的指针?

我的C声明如下:

int myData(uint myHandle, tchar *dataName, long *Time, uint *maxData, DATASTRUCT **data);

typedef struct {
  byte Rel;
  __int64 Time;
  char Validated;
  unsigned char Data[1];
} DATASTRUCT ;
Run Code Online (Sandbox Code Playgroud)

我的C#声明如下:

[DllImport("myData.dll", EntryPoint = "myData")]
public static extern int myData(uint myHandle, [MarshalAs(UnmanagedType.LPTStr)] string dataName, out long Time, out uint maxData, ref DATASTRUCT[] data);

[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct DATASTRUCT
{
    public sbyte Rel;
    public long Time;
    public byte Validated;
    public double Data;
}
Run Code Online (Sandbox Code Playgroud)

然后我调用托管函数如下:

string dataToShow = "description";
long Time;
uint maxData; …
Run Code Online (Sandbox Code Playgroud)

.net c# pinvoke interop marshalling

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

.net ×1

c# ×1

interop ×1

marshalling ×1

pinvoke ×1