zoukankan      html  css  js  c++  java
  • 动态加载DLL对接第三方接口

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

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

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

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

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

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

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

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

  • 相关阅读:
    SQL查询效率注意事项 2011.12.27
    MSSQL2005数据库快照(SNAPSHOT)初探
    恢复Intellij idea删除的文件
    因样式冲突引起的div消失问题
    C# 用面向对象的思想去编程
    C# Combobox联动
    C#端加载数据库,Combobox与Node控件绑定数据源demo示例
    数据库无法打开到SQL Server连接
    SQLServer2008 远程过程调用失败
    将.db文件导入SQLServer2008数据库
  • 原文地址:https://www.cnblogs.com/LinXuDong/p/6077660.html
Copyright © 2011-2022 走看看