如何卸载dll - 页 7

 

AlexEro,

我放假回来了,我看到你身上都是混蛋。让我们一起杀死他们。)))))

的利基斯

删除指标后加载dll的问题确实存在,但这不是因为dll的代码本身存在或不存在错误,而是因为开发者通过所谓的 "合理限制 "限制了外部库的使用。

这些限制是什么--他妈的知道,他们懒得详细解释。然而,只要图书馆符合这些限制,上传和下载都没有问题。

但是,一旦一个不安的程序员开始过度热衷于操纵内存,或从终端窃取处理器时间进行计算,或触及神圣的(哦,天哪)--终端.exe消息队列,邪恶的methaquot将进行报复。

Dll不被卸载并不是什么新鲜事。我遇到过这样的事情,让我的头发蜷缩。例如,一些指标(注意,这些指标并不包含DLL调用)开始爬到对方的地址空间。甚至在从DLL调用一个简单的函数后(甚至根本不做任何事情--我专门试过!),终端突然跳过(!)MQL程序行。时间序列上的循环for(i=limit;i>=0;i--)完成后,它飞出了负指数的区域(这不可避免地被警报所证实)!!。最令人惊讶的是,terminal.exe在一定数量的毫秒 后承认了所有滑稽的情况,并立即拉出了自己的屎,立即停止了游戏,并将变量i恢复到原来的值0。

让我们讨论一下,在我们修复了处理Ex4程序代码的错误之后,regsvr工具会做什么。

 
HideYourRichess >> :

再次强调--我对任何地方的dll都没有异议。如果你有问题,那是你的编程问题,MS和MT都不可能有责任。而且你需要使用 "老 "VC--反正应该很清楚。

有趣的人。

一切都是通过测试来解决的。

.

因此,拿着Dll,把它从EA中拉出来--如果它能被移除的话

与MT运行,就是这样,你是一个英雄,祝贺你!。

如果它失败了,你为什么要在这里写这个?为谁?

这样,客户就能看到他们在使用你的产品时将得到什么样的待遇?

或者让每个人都清楚地知道不应该向谁征求意见?

.

现在我在想,问问题的人想要什么样的答案?

最有可能的是:创建一个exe,加载一个带有动态链接的dll到其中。

通过GetProcAddress()和拉动调用。

如果当Exe运行时,它在卸载后没有删除Dll,你就有一个问题。

这就是所谓的获得真正的客观结果,而不是编造

"你的编程 "的一些 "错误"。

对于这个获得的结果,你可以提出一个理论:-)...

.

理论,我忏悔,都是在这里编出来的。

但那是因为你太懒了,懒得抬起%来好好回答。

.

而VBAG...嗯...。好样的!

对问题的合理描述,具体的案例研究,一切都变得尖锐清晰。

虽然对你来说,如果你正在使用一个应用服务器,那么dll的替换很快就不会那么相关了 :-)。

.

坦率地说--对于调试来说,在一个文件中拥有*静态*的数据更好。

让EA为你把数据转入一个文件。

在过去的7年里,我一直在一行一行地读写几百万字节的文件--一切都非常快。

而对于一个以制表符分隔的文件,你可以一次性将这个大字符串转换为矩阵,而且不需要substr()的

(以十分之一秒为单位),因为分割成字符串,然后再分割成列,不知为何,效果太好

太慢了(是几秒钟)。这样,如果有东西崩溃了,就可以*保证问题的解决

重现,而不是依赖随机数生成器。

.

而采用这种方法(!),测试将被简化。因为它不是一个Dll。

因为ONE CLICK中的运行按钮将编译、slink、运行,而exe本身将采取必要的数据。

.

P.S.: 只是 "编程 "的问题可以得到解决...

 

我同意前几位同志的意见,我的DLL在MT4中使用时应注意和限制。这意味着上面提到的,以及你应该逐步开发你的DLL,没有异类。你的DLL是MQL4中别人家的半解释器的临时客人。

2 alsu: 我病了,我只是无事可做,我不能在床上进行一个 智能项目,但与书呆子的谈话不需要太多脑力,所以我潦草地写了下来。 我在等待他们的良知何时会觉醒,但现在还看不到,只有蛊惑和口头禅....

 
alsu >> :

删除指标后DLL卸载的问题确实存在,但它与DLL代码本身是否存在错误无关,而是与开发者通过所谓的 "合理限制 "限制使用外部库的事实有关。

alsu>>

这些限制是什么--他妈的知道,他们懒得详细解释。 不过,只要图书馆符合这些限制,上传和下载都很顺利。

但是,一旦一个不安的程序员开始过度热衷于操纵内存,或从终端窃取处理器时间进行计算,或触及神圣的(哦,天哪)--终端.exe消息队列,邪恶的methaquot将进行报复。

Dll不被卸载并不是什么新鲜事。我遇到过这样的事情,让我的头发蜷缩。例如,一些指标(注意,这些指标并不包含DLL调用)开始爬到对方的地址空间。甚至在从DLL调用一个简单的函数后(甚至根本不做任何事情--我专门试过!),终端突然跳过(!)MQL程序行。for(i=limit;i>=0;i--)时间序列循环完成后将退出到负指数的区域(这不可避免地被警报所证实)!!!。最令人惊讶的是,terminal.exe在一定数量的毫秒后承认了所有的滑稽情况,并立即拉出了自己的屎,立即停止了哗啦啦的声音,将i恢复到原来的值0。

让我们讨论一下,在我们修复eX4代码处理的错误后,regsvr工具做什么。

正如他们所说,如果你愚蠢的话,你可以打破你的阴茎。换句话说,如果你不能在MQL中写出正常可行的程序--那是你的问题,而不是MQL,就是这样。你可以用C语言写一个有问题的dll,但这并不能取消C语言是一种伟大的语言这一事实。而在这里,一个糟糕的舞者,即你,也会妨碍到螺栓的使用。我理解你想把你的错误归咎于MT或MS的愿望。如果它不随着年龄的增长而消失,那么没有什么可以帮助你。

 
HideYourRichess >> :

在这里,正如他们所说,你可以愚蠢地打破你的小弟弟。换句话说,如果你不能在MQL中写出像样的可行程序--那是你的问题,而不是MQL,就是这样。你可以用C语言写一个有问题的dll,但这并不能取消C语言是一种伟大的语言这一事实。而在这里,一个糟糕的舞者,即你,也会妨碍到螺栓的使用。我理解你想把你的错误归咎于MT或MS的愿望。如果它不会随着年龄的增长而消失--那么没有什么可以帮助你了。

从你的头像来看,在你这个年龄,没有什么可以打破的,也没有什么可以干扰的。

你看到我的dlls了吗?你究竟为什么要称它们为坏话?我从来没有写过故障--我没有时间去写。这种情况下的故障是用元引号写的(顺便说一下,我不是在向MS提出要求)。如果你从来没有把比2+2更复杂的东西放在一个dll中,这并不意味着其他人不会这样做。2+2不会出现闪失。

 
jartmailru >> :

有趣的人。

一切都是通过测试来解决的。


我已经测试过了--它对我来说工作得很好。


jartmailru>>

因此,拿着Dll,把它从EA中拉出来--如果它能被移除的话

与MT运行,就是这样,你是一个英雄,祝贺你!。

如果它失败了,你为什么要在这里写这个?为谁?

因此,客户可以看到他们在使用你的产品时将受到怎样的待遇?

或者让每个人都清楚地知道他们不应该去找谁咨询?


你说的 "可以删除 "是什么意思?我在EA中的dlls表现得很好。我一定是做了什么完全错误的事情。

 
HideYourRichess >> :

>>那是你的问题,不是MQL的问题。

如果解释器不出现故障,它就不会跳过代码中的命令,即使你在这里拉裤子也不会跳过!

 
HideYourRichess >> :

你说的 "可以删除 "是什么意思?我在EA中的dlls表现得很好。我一定是做了什么完全错误的事情。

我的意思是,你必须在EA中指定一个特定的dll。

然后你必须运行专家顾问,不要退出Metatrader。

接下来,最重要的用例是假装我们正在更换一个新的dll。

如果在metatrader运行时失败(我通过删除文件来检查),那么

那么系统就会认为该dll正在使用中------。

瞧,就是这样。你的专家顾问已经完成了,而dll还没有被删除。

现在你必须重新启动整个应用程序来替换Dll。

 
AlexEro >> :

我生病了。

H1N1;)

>>他们说他们得到了前缀。

 
alsu >> :

从你的头像来看,在你这个年龄,没有什么可以打破的,也没有什么可以干扰的。

你看到我的dlls了吗?你究竟为什么要称它们为坏话?我从来没有写过故障--我没有时间去写。这种情况下的故障是用元引号写的(顺便说一下,我不是在向MS提出要求)。如果你从来没有把比2+2更复杂的东西放在一个dll中,这并不意味着其他人不会这样做。2+2不会出现闪失。


Oooooh,muyuye已经屈服于试图取笑头像了。下一步是试图取笑这个绰号。


你在之前的演讲中谈到了什么? 你向惊讶的听众讲述了什么恐怖的事情?看着它,我真的感到很困惑。你必须非常努力地工作才能得到这些。因此,对你的dlls说了很多坏话。但是,如果你所描述的这些恐怖与dlls无关,你为什么要讲述它们?


对了,2+2是什么意思? 是衡量难度的标准吗?试着像在Excel中那样自己实现2+2这样的东西,你会惊讶于它的难度。