111,118
社区成员
发帖
与我相关
我的任务
分享
var bytes = new byte[size];
Marshal.Copy(structPtr, bytes, 0, size);
var hdl=GCHandle.Alloc(bytes,GCHandleType.Pinned);
var ptr =hdl.AddrOfPinnedObject();
SDK_ReadInfo(0, ptr);
hdl.Free();
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct SDK_Information
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string strInternalName;
public long format;
public long dataSize;
}
var structObj=new SDK_Information();
var size = Marshal.SizeOf(typeof(SDK_Information));
var structPtr = Marshal.AllocHGlobal(size);
Marshal.StructureToPtr(structObj, structPtr, false);
SDK_ReadInfo(0, structPtr);
Marshal.FreeHGlobal(structPtr);
ulong i = (ulong)this.Handle;
以及
Form1 frm = (Form1)Form.FromHandle((IntPtr)i);