C#上使用DllImport方式加载封装好的.dll动态库

工具:vs2010

语言:c#

库文件:HCNetSDK.dll

问题:

1、HCNetSDK.dll 找不到指定的模块

2、HCNetSDK.dll 试图加载格式不正确的程序

由于海康sdk是封装的动态链接库dll库的形式,所以c#中使用比较麻烦的,海康demo使用的是动态加载,直接直接使用dll文件,
使用 [DllImport(@"..\..\bin\HCNetSDK\HCNetSDK.dll")],需using System.Runtime.InteropServices;

问题一:

方案、将HCNetSDK.dll文件放在项目的bin目录下,也可以解决,安上面的路径是在bin目录,不要放在二级目录。


问题二:

方案:由于库与选择编译的平台不匹配导致,加载格式不正确。可以选中项目,右击,点击属性,在生成页,目标平台 选项,选择你是x64还是x86

 

海康的sdk动态链接库dll只能用于windows的应用程序中,在WinForm程序中按照上述的方法已经验证成功,在Windows服务上使用时海康的dll文件会造成服务执行失败,此时需在winform上封装生成dll,将winform上的dll添加引用到service上,将海康的dll放入到bin目录下,服务既可执行。

在web的应用程序中需使用高版本的vs在工具中进行设置

posted @ 2021-08-12 16:41  天空之云  阅读(781)  评论(0编辑  收藏  举报