Project1

标题: [怨念]RGSS102J补丁v1.01~附源码 [打印本页]

作者: 灼眼的夏娜    时间: 2009-7-7 22:18
标题: [怨念]RGSS102J补丁v1.01~附源码
本帖最后由 灼眼的夏娜 于 2009-7-17 11:57 编辑

针对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的条件全部具备,剩下的就是体力活了><(OTL ruby解释器的函数好多- -望天)

目前仅提供1.01版本测试 :函数部分导出
待补完必要的以后发布源码工程~

v1.01-OLE初步测试版

源码&测试工程地址~
http://rgss102jpatch.googlecode.com/svn/trunk/
^ ^

RGSS102JPatchV1.01.rar

759.97 KB, 下载次数: 2333


作者: 雷欧纳德    时间: 2009-7-7 22:21
占领沙发{:3_51:}
作者: ONEWateR    时间: 2009-7-7 22:32
本帖最后由 ONEWateR 于 2009-7-7 22:41 编辑

话说板凳也不错……

说到补丁,我觉得rmxp有个很严重的漏洞。
非法关机一些数据的读取失败。
总结经验得出,在临时保存时非法关机会出现此错误。

然而让我想起了word等软件,它们都会备份一个隐藏文件。
即使遇上突如其来的断电也不用担心……  = =~

当然,养成备份data的习惯自然可以减少不必要的“损失”

以上

”虽然文不对题,但还是将它说出来 = =
作者: orochi2k    时间: 2009-7-8 08:17
占座,等源码 o(╯□╰)o
作者: ondine    时间: 2009-7-8 08:55
这是地板么。。。。。。。{:3_49:}
作者: IamI    时间: 2009-7-8 09:24
同无良的占座
作者: 无名小兵    时间: 2009-7-8 09:31
我也占1个位置吧 - - 等源代码。。。
作者: 越前リョーマ    时间: 2009-7-8 16:29
虽然不是太理解什么意思…… = =
不过还是支持一下。
作者: 猫哥哥    时间: 2009-7-8 16:39
:o围观占座等源码
作者: 紫苏    时间: 2009-7-8 17:06
大心!!{:3_51:}{:3_51:}{:3_51:}
可以用 win32ole 和 socket 了吧~
作者: dbshy    时间: 2009-7-9 11:43
佛曰:牛人天天有,今天特别多
作者: 灼眼的夏娜    时间: 2009-7-9 11:58
大心!!{:3_51:}{:3_51:}{:3_51:}
可以用 win32ole 和 socket 了吧~
紫苏 发表于 2009-7-8 17:06


呃- - win32ole   ms还差20个函数左右才能编译通过- - 然后就是测试= =
至于socket还不清楚= =
作者: TERENCE    时间: 2009-7-9 16:12
但MS....
require "complex"
还是不能使用complex(复数)的函式庫
仍会出错....

能否把有关数学运算的函式庫也做些调整
例如"complex"、"rational" ....等函式庫

或者因为我很笨方法用错了,请告诉我该怎么用
我对这种高级领域完全不知情!!
:dizzy:
作者: 灼眼的夏娜    时间: 2009-7-9 22:37
更新 添加ole测试工程及源码工程~
作者: zh99998    时间: 2009-7-11 09:19
RGSS202E.dll补丁~~~~~~~~~
作者: dna_7086    时间: 2009-7-16 14:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: 杉子蓝    时间: 2009-7-16 22:23
额~~!哈……3楼的……我用笔记本~~!不怕自动断电……哈哈
作者: 面粉    时间: 2009-7-16 22:45
大喜,这样子socket库可以用了~\(≧▽≦)/~

2年的怨念泪目……
作者: 灼眼的夏娜    时间: 2009-7-17 11:57
大喜,这样子socket库可以用了~\(≧▽≦)/~

2年的怨念泪目……
面粉 发表于 2009-7-16 22:45

- -b ms 暂时还不支持socket 需要自己编译源码= =
作者: link006007    时间: 2009-10-11 20:45
本帖最后由 link006007 于 2009-10-11 20:46 编辑

原来这个神奇的东西已经发布这么久了吗 - -
没第一时间膜拜真是太遗憾了

现在只好挖坟回帖了
作者: DeathKing    时间: 2009-10-12 13:27
额额…………我是冲着源码来的
作者: DeathKing    时间: 2010-2-28 22:43
夏娜大人想多了……RM是可以秒杀require的。只要修改一下$LOAD_PATH变量就行了。
作者: zh99998    时间: 2010-3-1 07:09
不可,RM和RGE都是死都加载不了so的那种
.rb连require都不用直接粘贴进去就好
作者: 夏胧    时间: 2010-7-8 12:47
夏娜大人想多了……RM是可以秒杀require的。只要修改一下$LOAD_PATH变量就行了。 ...
DeathKing 发表于 2010-2-28 22:43


RM显然只可以require 文本文件= =

作者: yangff    时间: 2010-7-10 20:11
是重写了RGSS102J.DLL?还是什么?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1