DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: kcx
今日帖子: 12
在线用户: 15
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 dbyoung (dbyoung) ▲▲▲▲▲ -
普通会员
2018/11/6 13:10:06
标题:
TIdTCPServer 在 dll 中使用的问题 浏览:174
加入我的收藏
楼主: 我用 TIdTCPServer 来监测硬件发送过来的信息。

CPU 会逐渐增长至100%,在 OnExecute 中,添加延时:
 IndySleep(100);
CPU就不会增长了。

但发现一个问题。

TIdTCPServer 用在一个EXE中,是没有问题的。
但封装在一个DLL中,就会导致程序崩溃。
不知道哪位同学遇到过这样的问题,如何解决?
----------------------------------------------
Delphi7爱好者
作者:
男 dbyoung (dbyoung) ▲▲▲▲▲ -
普通会员
2018/11/6 16:14:47
1楼: 找到问题原因了。资源释放问题。
EXE中,资源即使没有释放,因为EXE结束了,整个资源就都被系统释放了,系统也不会报错。
DLL中,如果资源没有释放,释放DLL时,因为有的资源还在使用DLL,Delphi不会自动释放这些资源,所以报错了。
----------------------------------------------
Delphi7爱好者
作者:
男 bahamut8348 (leonna) ▲▲▲▲▲ -
普通会员
2018/11/7 1:02:32
2楼: 也不知道兰州到底要解释什么东西。
对于进程内的dll来说,和普通exe没什么区别。
除非是进程外的dll。

另外,你做tcpserver居然用indy?
祝你好运吧。
----------------------------------------------
--
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行46.875毫秒 RSS