幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3769|回复: 13

让RGSS支持Win32API

[复制链接]

8

主题

25

帖子

509

积分

⑤进阶

积分
509
发表于 2004-9-13 02:20:58 | 显示全部楼层 |阅读模式
到官方网站或者点击下面的连接下载RGSS100J.dll的最新版本,然后放到系统文件夹或者放到你的游戏目录,也就是说,对于Win2000/XP系统放到System32文件夹内,或者放到跟你的游戏文件Game.rxproj同一个目录内。

更新RGSS100J.dll:

http://www.enterbrain.co.jp/tkool/rpgxp/RGSS100a.EXE

[此贴子已经被作者于2004-9-13 2:37:45编辑过]
回复

使用道具 举报

5

主题

90

帖子

1049

积分

⑥精研

NY极恶党首席苦力

积分
1049
发表于 2004-9-13 09:10:02 | 显示全部楼层
这个Dll破解过吗?
毋意,毋必,毋固,毋我
回复 支持 反对

使用道具 举报

19

主题

271

帖子

3837

积分

⑥精研

爱的橙子雪糕

积分
3837
发表于 2004-9-13 09:11:48 | 显示全部楼层
HOHO~~好东西啊~~我马上试试~~
回复 支持 反对

使用道具 举报

5

主题

90

帖子

1049

积分

⑥精研

NY极恶党首席苦力

积分
1049
发表于 2004-9-13 09:19:07 | 显示全部楼层
斑竹抓紧时间公布结果啦
毋意,毋必,毋固,毋我
回复 支持 反对

使用道具 举报

19

主题

271

帖子

3837

积分

⑥精研

爱的橙子雪糕

积分
3837
发表于 2004-9-13 13:06:24 | 显示全部楼层
似乎没什么用啊?~~
回复 支持 反对

使用道具 举报

3

主题

45

帖子

1932

积分

⑥精研

积分
1932
发表于 2004-9-13 17:23:10 | 显示全部楼层
可以干什么>?
都说我是外星来的
回复 支持 反对

使用道具 举报

8

主题

25

帖子

509

积分

⑤进阶

积分
509
 楼主| 发表于 2004-9-13 17:28:21 | 显示全部楼层
以下是引用Danexx在2004-9-13 13:06:24的发言:

似乎没什么用啊?~~


怎么会,你指的可能是RGSS100J没有起作用吧。如果你操作正确的话,输入下面的脚本来测试一下Win32API能不能起作用。

在脚本编辑器最上面输入脚本,名称为Win32API_Test。然后F12运行游戏,如果弹出标题为RGSS的窗口,说明Win32API已经起作用了。

顺便一句,不用再require \"Win32API\"了。这可能是你的问题所在吧。


# MultiByteToWideChar/WideCharToMultiByte声明
CP_ACP = 0
CP_UTF8 = 65001
MultiByteToWideChar = Win32API.new(\'kernel32\', \'MultiByteToWideChar\', \'ilpipi\', \'i\')
WideCharToMultiByte = Win32API.new(\'kernel32\', \'WideCharToMultiByte\', \'ilpipipp\', \'i\')

# MessageBoxA声明
MB_OK = 0x00000000
MessageBoxA = Win32API.new(\'user32\', \'MessageBoxA\', \'lppi\', \'i\')

# UTF8 -> UTF16
text = \'这是Win32API生成的弹出窗口,要注意Unicode的问题\';
len = MultiByteToWideChar.call(CP_UTF8, 0, text, text.size, nil, 0);
buf = \"\\0\" * (len*2)
len = MultiByteToWideChar.call(CP_UTF8, 0, text, text.size, buf, buf.size/2);

# UTF16 -> Shift-JIS(转换字符串格式)
len = WideCharToMultiByte.call(CP_ACP, 0, buf, buf.size/2, nil, 0, nil, nil);
buf2 = \"\\0\" * len
len = WideCharToMultiByte.call(CP_ACP, 0, buf, buf.size/2, buf2, buf2.size, nil, nil);

# ASCII可以,但汉字就不可以正确显示了
buf2 += \'abc\';

# 表示
MessageBoxA.call(0, buf2, \"RGSS\", MB_OK)
回复 支持 反对

使用道具 举报

5

主题

19

帖子

1242

积分

⑥精研

积分
1242
发表于 2004-9-13 19:51:54 | 显示全部楼层
实验成功~~~~~
就是说你安装了RPG MAKER XP后,把System32下的RGSS100J.dll复制到你的所建的工程文件夹下~~~
就可以调用 Win32API 了
厉害啊~~~
这样简直成了一个面向对象的软件开发工具了~~~
回复 支持 反对

使用道具 举报

5

主题

90

帖子

1049

积分

⑥精研

NY极恶党首席苦力

积分
1049
发表于 2004-9-13 19:58:59 | 显示全部楼层
误会了,还以为是允许require……
毋意,毋必,毋固,毋我
回复 支持 反对

使用道具 举报

8

主题

25

帖子

509

积分

⑤进阶

积分
509
 楼主| 发表于 2004-9-13 21:12:01 | 显示全部楼层
以下是引用风中人来在2004-9-13 19:51:54的发言:

实验成功~~~~~

就是说你安装了RPG MAKER XP后,把System32下的RGSS100J.dll复制到你的所建的工程文件夹下~~~

就可以调用 Win32API 了

厉害啊~~~

这样简直成了一个面向对象的软件开发工具了~~~

把下载的RGSS100J.dll更新放到System32下就可以了,可以把你的游戏目录里的RGSS100j.dll删除掉,这两个之间没有冲突,游戏运行的时候总是先检查当前目录是否有RGSS100J.dll,若没有才要检查System32的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-6-18 13:48 , Processed in 0.011945 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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