递归火山软件开发平台

标题: 关于dll自动卸载的问题 [打印本页]

作者: qzuser123ss    时间: 2025-12-10 16:45
标题: 关于dll自动卸载的问题
我现在遇到了一个问题,我给别人写了一个插件,这个插件是dll文件。


dll被加载后会被调用,调用后会在dll内部启动一个线程,这个线程指向的函数是一个死循环,现在出现的问题就是他们的系统关闭后由于dll里面的循环没退出导致程序无法退出。我在dll里面怎么捕捉结束退出信号?能捕捉到这个信号我就可以停止循环变量了

作者: GodAnubis    时间: 2025-12-10 17:11
启动有状态线程:噜阿噜

作者: 570152847    时间: 2025-12-10 17:46
试试在DLL_PROCESS_DETACH中设置退出信号, 在死循环中检测 跳出循环
作者: qzuser123ss    时间: 2025-12-11 15:29
570152847 发表于 2025-12-10 17:46
试试在DLL_PROCESS_DETACH中设置退出信号, 在死循环中检测 跳出循环

火山编程怎么使用这个呢?我看这个好像是一个dll函数
作者: qzuser123ss    时间: 2025-12-11 15:36
qzuser123ss 发表于 2025-12-11 15:29
火山编程怎么使用这个呢?我看这个好像是一个dll函数

火山编程怎么使用这个呢?我看这个好像是一个dll函数
作者: Xelloss0618    时间: 2025-12-11 15:47

                    

                        

                           

                           
正在渲染火山代码...

                        

                    

                    复制代码
               

作者: qzuser123ss    时间: 2025-12-11 15:48
Xelloss0618 发表于 2025-12-11 15:47
【火山代码】

类 启动类

也就是我把这个类设为全局类,然后对方调用的方法里面启动这个线程,外部结束时这个类会收到被卸载的通知?
作者: Xelloss0618    时间: 2025-12-11 18:27
qzuser123ss 发表于 2025-12-11 15:48
也就是我把这个类设为全局类,然后对方调用的方法里面启动这个线程,外部结束时这个类会收到被卸载的通知 ...

主要看启动类里的“将被卸载”,DLL被卸载时会执行里面的方法,你在里面结束线程就行了。
结束线程的方法很多,我这里用线程类只是提供一个思路。




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4