DLL释放问题(DLL中使用了Raize控件)

Lion_sj 2004-12-22 09:37:58
两个DLL(假定为DLL1,DLL2)中都使用了Raize控件
总控调用这两个DLL正常,假定调用时先调用DLL1,然后调用DLL2
释放时如果先释放DLL2再释放DLL1,那么一切正常。相反如果先释放DLL1再释放DLL2,
就会报出下面这个错误:
Project projectname raised too many consecutive exceptions:
application defined exception (code xxxx) at xxxx.
Process stopped. Use Step or Run to continue.

请问:这是为什么啊,
...全文
268 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
fayeflash 2004-12-24
  • 打赏
  • 举报
回复
顶呀~~~
g961681 2004-12-23
  • 打赏
  • 举报
回复
是释放DLL1时出错,还是释放DLL2时出错?
Lion_sj 2004-12-23
  • 打赏
  • 举报
回复
to kzh80000(小鱼)
关键是如果我不用raize控件的话,一切正常

我怀疑是否该控件有些问题?,我好多DLL使用了该控件,替换肯定不可以

怎么办啊,急死了
trainbox 2004-12-23
  • 打赏
  • 举报
回复
估计是rave有一些共享的东西会被任何一个RAVE实例引用和修改,既然后进先出可以,那就后进先出啦
kzh80000 2004-12-23
  • 打赏
  • 举报
回复
我想是这样字的 ,你调用DLL2后DLL2的一直处于占用系统资源状态,而DLL1则处于闲置状态,操作系统必须让你先释放DLL2所占用资源,因为DLL1此时也不占用系统资源,所以DLL1放在DLL2后面释放是符合逻辑规范的!
哈哈,langziwujia 是王金亮吧 哈哈 巧啊!在这里碰到你!
Lion_sj 2004-12-23
  • 打赏
  • 举报
回复
没有人回答啊
急呢
Lion_sj 2004-12-23
  • 打赏
  • 举报
回复
to g961681(我好惨啊!)


释放DLL1时错误
zklove 2004-12-22
  • 打赏
  • 举报
回复
应该是在dll1中对raize控件的资源有所改变,在dll2中对这个资源发出了请求,所以你先释放了dll1,就会出现这个错误
Lion_sj 2004-12-22
  • 打赏
  • 举报
回复
to aiirii(ari-爱的眼睛)
我也觉得释放第一个DLL时释放了第二个DLL的资源。因为按照先进后出的原则的话是没有问题的,只有先进先出才有问题

那该怎么办呢?难道控件问题?
Lion_sj 2004-12-22
  • 打赏
  • 举报
回复
to trainbox(rain)
没有任何关联,只是都使用了raize控件而已
aiirii 2004-12-22
  • 打赏
  • 举报
回复
可能與代碼有關, 第二個dll釋放了第一個dll申請的資源
trainbox 2004-12-22
  • 打赏
  • 举报
回复
两个DLL是否有关联
Lion_sj 2004-12-22
  • 打赏
  • 举报
回复
to langziwujia007(※刑警队长※)
先谢了:)
langziwujia007 2004-12-22
  • 打赏
  • 举报
回复
不是很懂,帮你顶吧,让高手解决,顺便学习一下。
Lion_sj 2004-12-22
  • 打赏
  • 举报
回复
to zklove(花花公子)
释放第一个DLL后,第二个DLL使用正常,就是释放时错误。

to sunkevin(愚公)
如果真是你说的这种情况的话,那应该怎么去做呢



sunkevin 2004-12-22
  • 打赏
  • 举报
回复
raize控件句柄在第一个调用的DLL里,即DLL1,DLL2里的raize共用DLL1的raize句柄,释放DLL1后,DLL2的raize找不到原来的句柄就会出错。

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧