粗略看了下,有两点需要注意
1.结构体要考虑字节对齐问题,
给你个例子    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
    public struct SBaseConfig
    {
        public int LogFileCount;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string LogFilePath;
    }2. 结构体指针在Dllimport声明时,需要加上 MarshalAs属性
例如:
[In, Out, MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStruct, SizeParamIndex = 1)] MyStruct[] dataArray