C#中如何动态加载和卸载DLL

如题所述

第1个回答  2020-05-15
你提到,当卸载域的时候“另一个线程还在执行这个dll里面的方法”,那么这个方法的调用方应该在计划卸载的域之外,这样:通过反射方法运行的代码在执行的域中(即主程序的域),这种情况下在执行域中同样加载了目标程序集(因此文件被占用),与要卸载的域无关。
如果目标程序集是可执行程序,则可以令新建的域执行该代码,此时,在代码执行中突然卸载域,会从执行线程上引发appdomainunloadexception异常。
跨应用程序域访问不是一种好的设计思路。

C#中如何动态加载和卸载DLL
C#也提供了实现动态卸载DLL的方法,通过AppDomain来实现。AppDomain是一个独立执行应用程序的环境,当AppDomain被卸载的时候,在该环境中的所有资源也将被回收。关于AppDomain的详细资料参考MSDN。下面是使用AppDomain实现动态卸载DLL的代码,usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem....

C#中如何动态加载和卸载DLL
你提到,当卸载域的时候“另一个线程还在执行这个dll里面的方法”,那么这个方法的调用方应该在计划卸载的域之外,这样:通过反射方法运行的代码在执行的域中(即主程序的域),这种情况下在执行域中同样加载了目标程序集(因此文件被占用),与要卸载的域无关。如果目标程序集是可执行程序,则可以令新建...

C#实现Windows服务安装卸载开启停止
在C#环境构建Windows服务,首先创建一个Windows窗体应用,界面设计应简洁直观,方便用户操作。在项目中添加两个系统DLL,确保程序能够访问所需功能。通过引用配置,确保这两项系统DLL被正确添加至项目中。实现服务操作的关键代码如下:检查服务名称是否存在 安装服务 卸载服务 启动服务 停止服务 根据服务操作需求...

C#如何卸载已经加载的动态链接库dll?
请参考:http:\/\/www.diybl.com\/course\/4_webprogram\/asp.net\/netjs\/20090521\/167628.html

dll动态调用和静态调用有什么区别
(2)动态调用,即显式调用方式,是由编程者用API函数加载和卸载DLL来达到调用DLL的目的,比较复杂,但能更加有效地使用内存,是编制大型应用程序时的重要方式。在Windows系统中,与动态库调用有关的函数包括: ①LoadLibrary(或MFC 的AfxLoadLibrary),装载动态库。 ②GetProcAddress,获取要引入的函数,将符号名或标识号转换为...

C#中program.cs和module1是什么?
1、开始——运行——msconfig——启动——把加载项***.dll的那个勾勾去掉。 重启电脑,通常到这就可以了,如果还弹出来再进行第二步 2、开始——运行——regedit 在下面的位置删除相应键值: HKEY_CURRENT_USER\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\...

用C#打开运行对话框
命令:rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1 增加新的打印机 模块:shell32.dll 命令:rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter 添加\/删除程序 模块:appwiz.cpl 命令:rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1 结果:显示安装\/卸载。命令:...

我用VB制作了一个DLL文件,为什么C#调用不了
②设置工程的 Project Settings来加载DLL的LIB文件打开工程的 Project Settings菜单,选中Link,然后在Object\/library modules下的文本框中输入DLL的LIB文件。③通过程序代码的方式加入预编译指令#pragma comment (lib,”*.lib”),这种方法优点是可以利用条件预编译指令链接不同版本的LIB文件。因为,在Debug...

vb.net编程,如何使用 appdomain 实现某进程DLL动态加载和卸载?
1.建立一个新的程序集,里面包含一个轻量的类型,这个类型只包含一个用来加载程序集的公共方法;2.在你的主程序里面,用appdomain.load来加载上一步的程序集,接着实例化上一步的轻量的类型;3.而后就可以像操作通常的对象一样,调用它上面的方法来加载你想要的程序集了;源代码已经打包发给你了, 你看看...

如何注册DLL文件
如果需要注册(或是只是单纯的注册dll文件),注册步骤如下:在开始菜单中选择"运行" ,输入 "regsvr32 ***.dll" (不要输入引号,***是你要注册的dll文件名),只是如果dll文件不 在windows,windows\\system32文件夹内你就应该指定dll文件位置。 其实DLL文件即动态链接库文件,是一种可执行文件,它允许...

相似回答
大家正在搜