这个是结构体的定义
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct FMP_OPEN_STRUCT
{
public string lpFileName;
public Int64 dwCallBack;
public byte[] reserved;
}下面是方法的传递的方法 最后一个就是结构体 他好象转成DWORD 可是C#里面好象没有DWORD类型 我用INT转是转不了的谁告诉我这个方法应该怎么传.
#define FMP_OPEN 0x01
#define FMPF_BUFFERS 0x0002SendDriverMessage(hReelDrv,0x4000+1,
MAKELPARAM(MAKEWORD(FMP_OPEN,0),FMPF_BUFFERS),(DWORD)&FMPOpenStruct);
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct FMP_OPEN_STRUCT
{
public string lpFileName;
public Int64 dwCallBack;
public byte[] reserved;
}下面是方法的传递的方法 最后一个就是结构体 他好象转成DWORD 可是C#里面好象没有DWORD类型 我用INT转是转不了的谁告诉我这个方法应该怎么传.
#define FMP_OPEN 0x01
#define FMPF_BUFFERS 0x0002SendDriverMessage(hReelDrv,0x4000+1,
MAKELPARAM(MAKEWORD(FMP_OPEN,0),FMPF_BUFFERS),(DWORD)&FMPOpenStruct);
MAKELPARAM(MAKEWORD(FMP_OPEN,0),FMPF_BUFFERS),(System.UInt32)&FMPOpenStruct);
.net下
可以用
Marshal.StructureToPtr 获得指针
dm.lpFileName = @"D:\1.mpg";
dm.dwCallBack = 0;
dm.reserved = new byte[8]; IntPtr ptr = new IntPtr();
//object A = Marshal.PtrToStructure(ptr, typeof(FMP_OPEN_STRUCT));
Marshal.StructureToPtr(dm, ptr, true);这样写对么 怎么会出错呢 我比较笨 不好意思哦