递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 142|回复: 8
打印 上一主题 下一主题

[视窗] 关于dll自动卸载的问题

[复制链接]

9

主题

56

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
跳转到指定楼层
楼主
发表于 前天 16:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在遇到了一个问题,我给别人写了一个插件,这个插件是dll文件。


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

使用道具 举报

3

主题

14

帖子

63

积分

注册会员

Rank: 2

积分
63
沙发
发表于 前天 17:11 | 只看该作者
启动有状态线程:噜阿噜
回复

使用道具 举报

0

主题

9

帖子

275

积分

中级会员

Rank: 3Rank: 3

积分
275
板凳
发表于 前天 17:46 | 只看该作者
试试在DLL_PROCESS_DETACH中设置退出信号, 在死循环中检测 跳出循环
回复

使用道具 举报

406

主题

1983

帖子

9089

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
9089
QQ
地板
发表于 前天 20:28 | 只看该作者
570152847 发表于 2025-12-10 17:46
试试在DLL_PROCESS_DETACH中设置退出信号, 在死循环中检测 跳出循环

你这个办法时唯一的。

唯二的办法就是 直接 终止进程
专业承接18-98岁xx的心理及生理教育辅导。
回复

使用道具 举报

9

主题

56

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
5#
 楼主| 发表于 昨天 15:29 | 只看该作者
570152847 发表于 2025-12-10 17:46
试试在DLL_PROCESS_DETACH中设置退出信号, 在死循环中检测 跳出循环

火山编程怎么使用这个呢?我看这个好像是一个dll函数
回复

使用道具 举报

9

主题

56

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
6#
 楼主| 发表于 昨天 15:36 | 只看该作者
qzuser123ss 发表于 2025-12-11 15:29
火山编程怎么使用这个呢?我看这个好像是一个dll函数

火山编程怎么使用这个呢?我看这个好像是一个dll函数
回复

使用道具 举报

29

主题

2747

帖子

9557

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
9557
7#
发表于 昨天 15:47 | 只看该作者

                    

                        

                           

                           
正在渲染火山代码...

                        

                    

                    复制代码
               
回复

使用道具 举报

9

主题

56

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
8#
 楼主| 发表于 昨天 15:48 | 只看该作者
Xelloss0618 发表于 2025-12-11 15:47
【火山代码】

类 启动类

也就是我把这个类设为全局类,然后对方调用的方法里面启动这个线程,外部结束时这个类会收到被卸载的通知?
回复

使用道具 举报

29

主题

2747

帖子

9557

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-12-12 09:02 , Processed in 0.094023 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表