c++ dll 原型:
struct myStruct
{
byte* mymember;
}int myfunc(myStruct* theStruct);c#中调用此dll中的myfunc(),该如何在c#下定义结构体myStruct?unsafe下可以通过同样的定义指针解决,但是非unsafe下怎么搞定?
struct myStruct
{
byte* mymember;
}int myfunc(myStruct* theStruct);c#中调用此dll中的myfunc(),该如何在c#下定义结构体myStruct?unsafe下可以通过同样的定义指针解决,但是非unsafe下怎么搞定?
{
byte mymember[];
}
{
[MarshalAs(UnmanagedType.ByValArray , SizeConst = 1)]
public struct myStruct
{
[MarshalAs(UnmanagedType.ByValArray , SizeConst = 1)]
public byte[] mymemeber; public myStruct(int i)
{
mymemeber = new byte[1];
}
{
byte[] mymember;
}
使用时
myStruct m = new myStruct();
m.mymember = new byte[255];m.mymember = ...GetBytes