我在C#STRUCT編組
unsafe public struct control
{
public int bSetComPort;
public int iComPortIndex;
public int iBaudRate;
public int iManufactoryID;
public byte btAddressOfCamera;
public int iCameraParam;
public byte PresetNum;
public byte PresetWaitTime;
public byte Group;
public byte AutoCruiseStatus;
public byte Channel;
public fixed byte Data[64];
}
我用將其轉換爲字節數組[]的函數下面的結構是
static byte[] structtobyte(object obj)
{
int len = Marshal.SizeOf(obj);
byte[] arr = new byte[len];
IntPtr ptr = Marshal.AllocHGlobal(len);
Marshal.StructureToPtr(obj, ptr, true);
Marshal.Copy(ptr, arr, 0, len);
Marshal.FreeHGlobal(ptr);
return arr;
}
當我編譯它給
Type 'System.Byte[]' cannot be marshaled as an unmanaged structure; no meaningful size or offset can be computed.
可能是什麼問題? 在此先感謝!
你的代碼工作正常,問題必須在別的地方,很可能你想轉換另一種類型。 – svick
我正在轉換我的結構,問題是結構中的字節數組。 –
不是。我試過你的代碼,它的工作方式你發佈它的方式。在visual 2010中使用 – svick