查看: 2096|回复: 3

[已经解决] 如何释放已调用完毕的dll

[复制链接]
梦石
0
星屑
85
在线时间
146 小时
注册时间
2011-8-14
回帖
55
发表于 2014-9-8 00:48:53 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
以下是我在RM里写的一个函数,用于调用dll

  
def self.调用dll处理战斗
    battle_process = Win32API.new("xxlhAstd.dll","call_battle_main",nil,"i")
    ok = battle_process.call
     if ok != 1
      p "error:#{ok}---dll未及时释放"
     end

     #call_释放dll #不知道如何实现

    return ok
  end


由于dll中有不少全局变量(类对象占多数),dll内并未写对这些全局类对象的初始化函数,
如果在dll没释放完的情况下,再次调用,则会带来许多不利的影响。所以很希望能够在调用
完dll中函数后,就里面释放掉这个dll。下次重新加载,使用。

@晴兰 @后知后觉
@高人


评分

参与人数 1星屑 +35 收起 理由
︶ㄣ牛排ぶ + 35 手动认可奖励

查看全部评分

梦石
0
星屑
255
在线时间
509 小时
注册时间
2010-10-1
回帖
82
发表于 2014-9-8 01:17:56 来自手机 | 显示全部楼层
额 我记得API不用释放吧?
而且反正都是个对象 你用的时候再直接生成一个不就完了吗?
Win32API.new("xxlhAstd.dll","call_battle_main",nil,"i").call
回复

使用道具 举报

梦石
0
星屑
2826
在线时间
2634 小时
注册时间
2013-1-16
回帖
5453

贵宾

发表于 2014-9-8 01:44:32 | 显示全部楼层
直接battle_process = nil 不就好了?
(Created by @喵kano)


施工现场:hotege.github.io
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
回帖
1577

开拓者

发表于 2014-9-8 07:06:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部