c# winform程序调用托管dll(c#的dll),使用添加引用和动态加载dll
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相关推荐
- Unity3D的坑系列:动态加载dll
Unity3D的坑系列:动态加载dll 我现在参与的项目是做MMO手游,目标平台是Android和iOS,iOS平台不能动态加载dll(什么原因找乔布斯去),可以直接忽略,而在Android平台是可以 ...
- 【原】 动态加载dll
动态调用动态库步骤: 1.创建一个函数指针,其指针数据类型要与调用的DLL引出函数相吻合. 2.通过Win32 API函数LoadLibrary()显式的调用DLL,此函数返回DLL的实例句柄. 3. ...
- VC静态加载DLL和动态加载DLL
VC静态加载DLL和动态加载DLL 1. 静态加载DLL 如果你有a.dll和a.lib,两个文件都有的话可以用静态加载的方式: message函数的声明你应该知道吧,把它的声明和下面的语句写到一个头 ...
- C#根据Debug、Release模式动态加载dll
//根据Debug.Release状态动态加载dll文件 #if (DEBUG) const string dllPathCamera = @" ...
- 使用LoadLibrary动态加载DLL并使用其中的类
转载地址:https://blog.csdn.net/hetoby/article/details/51941921 动态加载DLL并使用其中的函数,是大家经常用到的,那么直接使用LoadLibrar ...
- html 调用c#dll中的控件,C#实现反射调用动态加载的DLL文件中的方法和在窗体中加载DLL文件的用户控件...
反射的作用: 1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型 2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射. ...
- BCB(C++ Builder)创建动态库(DLL,接口导出和调用),动态加载DLL
以前没有封装dll动态库,接触新的工作之后需要用,折腾了一整天,终于搞定了 毕竟是生手,就简单分析注意点和遇到的一些问题及解决方案: (1)首先准备要生成DLL的工程. (1.1)我用的是BCB(C+ ...
- C#动态加载DLL(转)
利用反射进行动态加载和调用. Assembly ass=Assembly.LoadFrom(DllPath); //利用dll的路径加载 加载dll后,需要使用dll中某类. Type type=as ...
- C#通过反射动态加载dll,读取module、类、方法、特性,并通过反射+简单工厂+配置文件 实现ioc
调用类: class Program {static void Main(string[] args){SafeInvoke(() =>{//通过委托实现通用的异常处理#region 通过反射创 ...
最新文章
- 访问控制允许原始多个域?
- python wait方法_Python条件类| 带有示例的wait()方法
- java 实现 常见排序算法(四)基数排序
- TikZ绘图示例——尺规作图: 圆内接正九边形的近似画法
- 锐龙5 3600偷跑 性能直逼酷睿i9-9900K
- 中国水稻种子行业市场供需与战略研究报告
- 【路径规划】基于matlab RBF优化Qlearning算法机器人避障路径规划【含Matlab源码 1219期】
- (5)二进制文件方式部署Kubernetes高可用集群----------创建kubeconfig文件Token.csv随机数文件
- linux设计引物探针,恳请相助:Taq man引物和探针设计
- php手机号最新正则表达式,最新手机号码正则表达式
- 安利一个免费下载VIP文档神器
- 在 Ubuntu Linux 上安装 Maya 2018
- Vue中解决数据量过大导致页面崩溃;解决方案
- 转自【MDCC技术大咖秀】Android内存优化之OOM
- C++面向对象(1):防卫式声明
- 宠物狗变机械狗,太有趣了!
- android官网自定义相机,android native.js camera自定义相机
- Linux创建软链接和硬链接的命令
- android listview嵌套progreesbar更新进度 ftp
- 使用Python调用百度地图的API在地图上添加标记
热门文章
- java string类型时间段 转换 date类型
- 【thymeleaf】Access to request parameters is forbidden in this context
- MySQL复制数据库
- FutureTask使用
- gre可以用计算机,GRE数学能用计算器吗
- 下位机和上位机是什么意思_单反无反选择高速机是什么意思?什么是高速机
- vue + element-ui 聊天_推荐6款Vue管理后台框架,收藏好,留备用
- 计算机函数的实验报告,excel函数实验报告.doc
- php+字符串去掉反斜杠,PHP如何去掉反斜杠?
- 跨域问题的简单解决办法