public byte[]  Reserved;
这个应该要定义长度吧!

解决方案 »

  1.   

    IKEY_DIRINFO dirInfo;你这里是dirInfoikey.ikey_CreateFile( handle,0,&fileInfo,sizeof(fileInfo));这里成了fileInfo
      

  2.   

    抱歉抱歉,结构体贴错了,应该是这个
    [StructLayout(LayoutKind.Sequential)] 
    public struct IKEY_FILEINFO
    {
    public uint   Id;
    public uint   Flags;
    public uint   FileSize;
    public byte   FileType;
    public byte   ReadAccess;
    public byte   WriteAccess;
    public byte   CryptAccess;
    [ MarshalAs( UnmanagedType.ByValTStr , SizeConst=12)] 
    public byte[] Reserved1;
    public byte   GrantedAccess;
    [ MarshalAs( UnmanagedType.ByValTStr , SizeConst=15 )]
    public byte[] Reserved2;
    }
      

  3.   

    方法里也有IKEY_FILEINFO fileInfo语句,可就是老编译错误,哪位大虾救我啊
      

  4.   

    不能光使用
    public byte[]  Reserved;来定义unsafe的封送类型
      

  5.   

    [ MarshalAs( UnmanagedType.ByValTStr , SizeConst=12)] 
    public byte[] Reserved1;
    是不是就是C++的
    public byter Reserved1[12];