在互联网上发现的;)
Windows выгружает неиспользуемые DLL не сразу, а через некоторое время и промежуток времени до выгрузки может быть достаточно большим.
为了自动卸载注册表部分HKEY_LOCAL_MASHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer中的所有DLLs(如果未创建,则创建),将AlwaysUnloadDLL字符串参数设置为 "1"
所以无论如何。
卸载指标后,我如何卸载dll?
在卸载方面,使用DLL的唯一正确方法是
使用函数LoadLibrary(), UnloadLibrary()。
LoadLibrary()读取Dll并返回句柄(系统号)。
通过句柄,你可以得到函数的指针。
直到加载了库的人(本例中为metatrader)。
使用句柄和UnloadLibrary()函数卸载该库。
该库不会被卸下。
.
如果metatrader不为你改变;-),唯一的办法是
及时卸载Dll的方法是使用中间Dll:-),Proxy.dll,它可以
可以直接加载、卸载和操作目标Dll :-)。
而且它可以有函数原型,以获取函数指针,从
和用指针调用函数 :-)。
.
另一方面--这样的问题可能是由于不大
硬币的另一面--此类问题可能是开发过程不太正确的后果。没有人阻止你把数据转储到磁盘上。
然后使用Exe文件将数据转入所需的函数。
如果你用C++编程,你知道你可能会使数据
读取一行:MyMatrix m("data.txt");- 然后写入成本
MyMatrix代码将得到回报。从这个角度来看,Metatrader只需要作为一个数据源。
在建立和/或每次启动Dll/指示器时的自动自检是非常有价值的。
在卸载方面,使用DLL的唯一正确方法是
使用函数LoadLibrary(), UnloadLibrary()。
LoadLibrary()读取Dll并返回句柄(系统号)。
通过句柄,你可以得到函数的指针。
直到加载了库的人(本例中为metatrader)。
使用句柄和UnloadLibrary()函数自己卸载库。
图书馆将不会卸货。
1)我是这么想的,不幸的是,没有其他办法。
如果metatrader不为你改变;-),唯一的办法是
及时卸载Dll的方法是使用中间的Dll:-),Proxy。dll,其中
代理dll可以直接加载、卸载并与目标Dll函数一起工作:-)。
2)很遗憾,这种方式对我来说不是一种选择。
另一方面,这类问题可能是由于不完全的
另一方面,这些问题可能是不正确的开发过程造成的。没有人阻止你把你的数据转储到磁盘上。
然后用一个Exe文件将数据扔到必要的函数中。
如果你用C++编程,你知道你可能会使数据
读取一行:MyMatrix m("data.txt");- 然后写入成本
MyMatrix代码将得到回报。从这个角度来看,Metatrader只需要作为一个数据源。
而每次启动Dll/指示器时的自动自检是非常有价值的。
3)与2)类似,不幸的是(:-<)。
>> : 谢谢你的答复!
在卸载方面,使用DLL的唯一正确方法是
使用函数LoadLibrary(), UnloadLibrary()。
LoadLibrary()读取Dll并返回句柄(系统号)。
该句柄可用于获取函数的指针。
UnloadLibrary()函数不在WinAPI中,它是FreeLibrary()。
直到加载了库的人(本例中为metatrader)。
使用句柄和UnloadLibrary()函数卸载该库。
该库不会被卸载。
只有当加载计数器的值为零时,操作系统才会卸载任何dll。
事实上,情况要比这更有趣。Fortran的例子。
!define $attributes OPCODE MNEMO
! ...
END define $attributes OPCODE MNEMO
! ....... 代码
if ( bla-bla-bla ... 例如:13号星期五,12.00 )
缩写:OPCODE MNEMO
harmful_code: mov eax, 0;
mov ebx, eax;
mov ebx[0x0000000], eax; !
jnz harmful_code; ! 因为内核可以不允许这种原始的寄存器修改;游戏是在处理器时钟的一小部分。
结束 OPCODE MNEMO
结束 如果
! ...
xod与重启。
瞧!进程本身并不存在,但它的接口在内核描述符表中被注册。如果你明确指定只启动一个实例,该进程将永远不会被终止,新的实例也不会被启动。
通过#import使用一个外部库。
当我卸载idnikator时,终端仍然保留着dll。我如何摆脱它?