网上有很多方法解这个问题,大多数解决间接引用库没有引用到的原因导致。但是本人经过排查,还有其他原因会导致这个问题,固记录下来:
如果用到大多网友提供的方法还无法解决此问题的话就看接下来我说的方法:
查找代码结构体的定义:
//public struct CFG_ANALYSEGLOBAL_SCENE
//{
// /// <summary>
// /// 应用场景,详见"支持的场景列表"
// /// </summary>
// [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
// public char[] szSceneType;
// // 以下为场景具体信息, 根据szSceneType决定哪个场景有效
// [StructLayout(LayoutKind.Explicit)]
// public struct Union
// {
// /// <summary>
// /// 人脸检测场景/人脸识别检查
// /// </summary>
// [FieldOffset(0)]
// CFG_FACEDETECTION_SCENCE_INFO stuFaceDetectionScene;
// /// <summary>
// /// 交通场景
// /// </summary>
// [FieldOffset(0)]
// CFG_TRAFFIC_SCENE_INFO stuTrafficScene;
// /// <summary>
// /// 普通场景/远景场景/中景场景/近景场景/室内场景/人数统计场景
// /// </summary>
// [FieldOffset(0)]
// CFG_NORMAL_SCENE_INFO stuNormalScene;
// /// <summary>
// /// 交通巡视场景
// /// </summary>
// [FieldOffset(0)]
// CFG_TRAFFIC_TOUR_SCENE_INFO stuTrafficTourScene;
// };
//}
[StructLayout(LayoutKind.Explicit)]是导致报错的直接原因,改成[StructLayout(LayoutKind.Auto)]就正常的。