扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 103|回复: 0

[转载发布] [怨念]RGSS102J补丁v1.01~附源码

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    昨天 18:01
  • 签到天数: 114 天

    连续签到: 4 天

    [LV.6]常住居民II

    2339

    主题

    404

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    6
    卡币
    10635
    OK点
    16
    推广点
    0
    同能卷
    0
    积分
    13406

    灌水之王

    发表于 2024-4-19 17:52:37 | 显示全部楼层 |阅读模式
    针对RGSS102J.dll的补丁程序~

    by 灼眼的夏娜

    说明:
       主要实现功能,提供RGSS中的so扩展支持,考虑扩充部分内部类?

    熟悉ruby的人都知道ruby里有一种c语言的扩展库,但测试在RM中却无法使用require失败~
    究其原因有以下几点:1、RGSS中对require方法进行了某些特殊处理;2、RGSS中对于C扩展运行所需要的条件不具备?- -  ruby的C扩展在windows下就是以dll形式提供的,然后扩展dll链接到ruby解释器的lib文件,然后ruby解释器require的时候Load dll并调用扩展dll中的一个 void Init_XXXX()方法进行初始化扩展类。
    因此我们只要是我们编写的扩展dll链接到ruby解释器上应该就行了~
    RMruby的解释器封装在RGSS102Jdll里~
    因此我们只需要导出RGSS102J里供扩展dll所需要的函数并提供lib文件即可~
    所以我们反汇编得到需要的函数地址~
    然后这里怎么导出呢?有两种办法:一是直接修改RGSS102J.dll的导出表,而是新建一个dll直接jmp到对应的地址。 该补丁采用的后一种方法,因为该补丁顺便可以直接提供一些RGSS内部类的扩展。
    至此 使RM支持扩展dll的条件全部具备,剩下的就是体力活了>

    本帖子中包含更多资源

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

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2025-3-15 15:30 , Processed in 0.212049 second(s), 54 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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