• 主页
  • 招聘
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API

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.

请问:这是为什么啊,
...全文
227 点赞 收藏 16
写回复
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找不到原来的句柄就会出错。
回复 点赞
发动态
发帖子
Delphi
创建于2007-08-02

1474

社区成员

26.2w+

社区内容

Delphi 开发及应用
社区公告
暂无公告