1. dll要强名.

2. winform程序要添加引用dll(自动获得dll的函数调用定义),"复制本地"属性设false,因为下一步会动态加载dll,所以"复制本地"属性设true也没有意义,反而在程序目录增加一个dll文件,混淆视听.

3. winform程序增加配置文件app.config,内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <!--固定值urn:schemas-microsoft-com:asm.v1-->
      <dependentAssembly>
        <assemblyIdentity name="chengxuji"
                          publicKeyToken="ef1fe3591431fbcc"
                          />
                            <!--chengxuji程序集名,ef1fe3591431fbcc公钥标记(需强名,在GAC中注册后就有了)-->
        <codeBase version="1.0.0.0" href="1\\chengxuji.dll"/>
                              <!--1.0.0.0版本要一致,..\\chengxuji.dll程序集目录(相对本程序运行目录)-->
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

这样就可以动态加载dll了,

1.用了引用,不用自己定义dll函数说明.

2.动态加载dll,可用相对目录,上级目录也可以,方便多系统共用同一个dll.即exe和dll不在同一目录.

最近找到了一个更方便的做法,不需要强名和版本,这是网址http://www.cnblogs.com/heimark/archive/2010/10/14/1851032.html

转载于:https://www.cnblogs.com/heimark/archive/2010/08/16/1800494.html

c# winform程序调用托管dll(c#的dll),使用添加引用和动态加载dll相关推荐

  1. Unity3D的坑系列:动态加载dll

    Unity3D的坑系列:动态加载dll 我现在参与的项目是做MMO手游,目标平台是Android和iOS,iOS平台不能动态加载dll(什么原因找乔布斯去),可以直接忽略,而在Android平台是可以 ...

  2. 【原】 动态加载dll

    动态调用动态库步骤: 1.创建一个函数指针,其指针数据类型要与调用的DLL引出函数相吻合. 2.通过Win32 API函数LoadLibrary()显式的调用DLL,此函数返回DLL的实例句柄. 3. ...

  3. VC静态加载DLL和动态加载DLL

    VC静态加载DLL和动态加载DLL 1. 静态加载DLL 如果你有a.dll和a.lib,两个文件都有的话可以用静态加载的方式: message函数的声明你应该知道吧,把它的声明和下面的语句写到一个头 ...

  4. C#根据Debug、Release模式动态加载dll

    //根据Debug.Release状态动态加载dll文件         #if (DEBUG)                 const string dllPathCamera = @" ...

  5. 使用LoadLibrary动态加载DLL并使用其中的类

    转载地址:https://blog.csdn.net/hetoby/article/details/51941921 动态加载DLL并使用其中的函数,是大家经常用到的,那么直接使用LoadLibrar ...

  6. html 调用c#dll中的控件,C#实现反射调用动态加载的DLL文件中的方法和在窗体中加载DLL文件的用户控件...

    反射的作用: 1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型 2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射. ...

  7. BCB(C++ Builder)创建动态库(DLL,接口导出和调用),动态加载DLL

    以前没有封装dll动态库,接触新的工作之后需要用,折腾了一整天,终于搞定了 毕竟是生手,就简单分析注意点和遇到的一些问题及解决方案: (1)首先准备要生成DLL的工程. (1.1)我用的是BCB(C+ ...

  8. C#动态加载DLL(转)

    利用反射进行动态加载和调用. Assembly ass=Assembly.LoadFrom(DllPath); //利用dll的路径加载 加载dll后,需要使用dll中某类. Type type=as ...

  9. C#通过反射动态加载dll,读取module、类、方法、特性,并通过反射+简单工厂+配置文件 实现ioc

    调用类: class Program {static void Main(string[] args){SafeInvoke(() =>{//通过委托实现通用的异常处理#region 通过反射创 ...

最新文章

  1. 访问控制允许原始多个域?
  2. python wait方法_Python条件类| 带有示例的wait()方法
  3. java 实现 常见排序算法(四)基数排序
  4. TikZ绘图示例——尺规作图: 圆内接正九边形的近似画法
  5. 锐龙5 3600偷跑 性能直逼酷睿i9-9900K
  6. 中国水稻种子行业市场供需与战略研究报告
  7. 【路径规划】基于matlab RBF优化Qlearning算法机器人避障路径规划【含Matlab源码 1219期】
  8. (5)二进制文件方式部署Kubernetes高可用集群----------创建kubeconfig文件Token.csv随机数文件
  9. linux设计引物探针,恳请相助:Taq man引物和探针设计
  10. php手机号最新正则表达式,最新手机号码正则表达式
  11. 安利一个免费下载VIP文档神器
  12. 在 Ubuntu Linux 上安装 Maya 2018
  13. Vue中解决数据量过大导致页面崩溃;解决方案
  14. 转自【MDCC技术大咖秀】Android内存优化之OOM
  15. C++面向对象(1):防卫式声明
  16. 宠物狗变机械狗,太有趣了!
  17. android官网自定义相机,android native.js camera自定义相机
  18. Linux创建软链接和硬链接的命令
  19. android listview嵌套progreesbar更新进度 ftp
  20. 使用Python调用百度地图的API在地图上添加标记

热门文章

  1. java string类型时间段 转换 date类型
  2. 【thymeleaf】Access to request parameters is forbidden in this context
  3. MySQL复制数据库
  4. FutureTask使用
  5. gre可以用计算机,GRE数学能用计算器吗
  6. 下位机和上位机是什么意思_单反无反选择高速机是什么意思?什么是高速机
  7. vue + element-ui 聊天_推荐6款Vue管理后台框架,收藏好,留备用
  8. 计算机函数的实验报告,excel函数实验报告.doc
  9. php+字符串去掉反斜杠,PHP如何去掉反斜杠?
  10. 跨域问题的简单解决办法