精易论坛

标题: dll卸载自身,为什么黑月编译的就可以,正常编译的就不行 [打印本页]

作者: 毛超    时间: 2018-12-31 20:39
标题: dll卸载自身,为什么黑月编译的就可以,正常编译的就不行



最近因为要频繁加载dll,然后运行了一段时间后,要释放,重新加载,经常会造成主程序崩溃,从论坛了解到,可以用到FreeLibraryAndExitThread这个api来l卸载自身来达到这种效果,但是我写了一个简单的例子,用正常的编译出来,会造成窗口假死,用黑月编译出来的就正常,实在是费解



完整的测试demo.zip (618.57 KB, 下载次数: 63)


补充内容 (2018-12-31 20:43):
不小心添加了个精益模快,可以去掉

补充内容 (2018-12-31 20:47):
我想问一下FreeLibraryAndExitThread这个卸载dll的API怎么用,网上的例子,只有黑月编译的能用
作者: 易易语    时间: 2018-12-31 20:45
他们编译,处理方法不一样,具体不知道,技术有限,没研究那么深啊。黑月能用,就用黑月呗。
作者: Zixue    时间: 2018-12-31 20:47
因为易语言编译的DLL并非是标准的WindowsDLL,而黑月编译的经过处理,所以算是正常DLL。
作者: 毛超    时间: 2018-12-31 20:58
以帅服人 发表于 2018-12-31 20:47
因为易语言编译的DLL并非是标准的WindowsDLL,而黑月编译的经过处理,所以算是正常DLL。

应该是FreeLibraryAndExitThread这个API的使用方式有差别吧,毕竟这是个标准的api
作者: 易易语    时间: 2018-12-31 21:00
https://125.confly.eu.org/forum.php?mod=viewthread&tid=14268841
API例子,你看了吗
作者: 毛超    时间: 2018-12-31 21:13
易易语 发表于 2018-12-31 21:00
https://125.confly.eu.org/forum.php?mod=viewthread&tid=14268841
API例子,你看了吗

看了,他这个完全有问题的,可以说没有效果,你可以尝试一下,加载,然后调用dll方法,然后释放,依然可以调用dll方法,所以是没有释放掉的
下面是你发的这个链接的例子

回复的demo.zip (348.4 KB, 下载次数: 8)

作者: 易易语    时间: 2018-12-31 21:18
wzx1196 发表于 2018-12-31 21:13
看了,他这个完全有问题的,可以说没有效果,你可以尝试一下,加载,然后调用dll方法,然后释放,依然可 ...

哦看他权限挺高啊,还发不好的东西啊。没想到。
作者: 毛超    时间: 2018-12-31 21:31
易易语 发表于 2018-12-31 21:18
哦看他权限挺高啊,还发不好的东西啊。没想到。

他确实是高手啦,不能一概而论,他那个问题好像就是我问的,只是这个问题确实有点费解,还想谢谢你啦
作者: 易易语    时间: 2018-12-31 21:36
wzx1196 发表于 2018-12-31 21:31
他确实是高手啦,不能一概而论,他那个问题好像就是我问的,只是这个问题确实有点费解,还想谢谢你啦

哦我记性不好,你要不说过一会也就忘了。,不会因为一件事情去了解一个人的。呵呵。看来他给你的印象挺好啊。那他应该挺好的。
作者: 007软件    时间: 2024-3-4 22:33
谢谢分享




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4