序言
在工控领域,很多时候需要访问和控制海康相机,通过程序控制海康相机可以实现变倍变焦,拍照,抓取视频等不同的操作。海康的SDK是C++编写的Dll,因为没有很好的进行包装,使用起来还是比较麻烦的,并且随着海康SDK的版本不同,各类版本有许多差异性,不好的封装会导致有很多的问题,这里把踩过的坑列举下,以便后来者少踩坑。
1. 一个进程只能加在一个海康DLL
在许多的应用中,有时候会不小心有多个类库,如果重复引用了海康DLL,会导致C#在调用海康威视CHCNetSDK出现未能从程序集中加载类型“WIFI_AUTH_PARAM”,因为它在 0 偏移位置处包含一个对象字段,该字段已由一个非对象字段不正确地对齐或重叠。
很多的处理方案是把整个文件接口体头部的LayoutKind.Explicit改为LayoutKind.Auto