动态加载DLL对接第三方接口

  项目中,需要对接客户的一个手持设备,设备中所加载的程序是新大陆提供的。新大陆也算是一个比较有名的设备制造商了。

对接内容无非就是,根据新大陆提供的API接口,对手持进行对接,完成基本的接口打开,关闭,数据文件的上传,下载或者删除。

以前其实没做过对硬件设备的对接。百度这方面相关的知识,准备在程序中以Import导入类库的形式,来获取新大陆所提供的所有接口,这其实有一个弊端,如果已导入类库的形式去加载所有DLL,这就得要把所有需要加载的DLL文件,都放到项目可执行文件的Bin目录下,可是项目BIN目录下已经有大量的这样那样的DLL文件,如果再往里加入会显得非常凌乱,而且也不利于版本的发布(可能测试部门就会遗漏这些DLL文件)

  最终在同事的帮助下,尝试了动态加载这些类库的方式去实现相应的对接

在项目下找个专门的路径建一个专门放这些的DLL的文件夹,可自定义路径,然后VS中将这些DLL文件属性设置如下图所示:

上图中,主要是前面两项,编译时,不需要将其复制到输出目录,且生成操作是以嵌入的资源方式。

然后我专门写了一个加载这些DLL文件的帮助类,然后根据新大陆提供的API帮助文件,找到对应DLL中的自己所需要的相关接口方法,以委托的形式开放给其他入口。

  具体代码就不贴了,并不是什么特别有技术含量的代码~。有点值得注意的是该帮助类最好是以单例的模式写,因为有可能同时多对象去访问时,手持设备的连接会挂掉。

 

posted @ 2016-11-18 14:34  Hey,Man!  阅读(1653)  评论(0编辑  收藏  举报