设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1690|回复: 5
打印 上一主题 下一主题

[已经解决] API 调用重复载入怎么办?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2012-2-22
帖子
14
跳转到指定楼层
1
发表于 2012-5-19 03:36:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
@inputbox = Win32API.new ('.\inputbox.dll','inputbox', ['p'], 'p')
@[email protected]("")
$game_message.texts.push( "白痴的#{@abc}")

说明:inputbox.dll 是自己写的一个DLL,用来输入文字;
问题:发现当定义@inputbox的时候DLL被载入一次,而且无法取返回值。call的时候又调用一次,感觉很奇怪,怎么让API定义的时候不自动载入呢?

另外一个问题:在文章显示的时候,换行用什么?我发现API返回的文本换行全部变成框框,无法实现的?

Lv2.观梦者

梦石
0
星屑
690
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

2
发表于 2012-5-19 06:26:27 | 只看该作者
本帖最后由 end55rpg 于 2012-5-19 06:26 编辑

最好把那你那里的脚本发来看看。。。。。
还有第二个问题= =难道是换行符不同?或者用旧版RMvx试试
欢迎点此进入我的egames.wink.ws,有RMQQ堂等

[url=http://rpg.blue/thread-317273-1-1.html]短篇八-赶选

http://yun.baidu.com/share/link?shareid=2158225779&uk=169642147&third=0


历险ARPG赢回你的疆域新的战斗模式?…………点击这里:[宋乱贼狂 for QQ堂]
http://rpg.blue/group-368-1.html
programing ....?
[url=http://rpg.blue/thrd-234658-1-1.html]
回复

使用道具 举报

Lv6.析梦学徒

Fuzzy Ginkgo
Taciturn Knight

梦石
0
星屑
60819
在线时间
1934 小时
注册时间
2010-6-26
帖子
1605

烫烫烫开拓者

3
发表于 2012-5-19 06:59:50 | 只看该作者
第二个问题可能需要把str按行拆开一行一行压入……
"白痴的#{@abc}".split(/\n/).each &$game_message.texts.method(:push)

点评

谢谢您的方法。我用您的方法,然后改DLL返回时把换行全部替换成ASCII码为10的字符,居然成功了。真是奇怪,一般软件的取值是13,这里居然是10.  发表于 2012-5-20 00:14
我的言论只代表我个人的观点,不代表雇主及/或任何第三方的立场。
Opinions expressed are solely my own and do not express the views or opinions of my employer and/or any third parties.
捐赠 | GitHub
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2012-2-22
帖子
14
4
 楼主| 发表于 2012-5-19 22:45:10 | 只看该作者
end55rpg 发表于 2012-5-19 06:26
最好把那你那里的脚本发来看看。。。。。
还有第二个问题= =难道是换行符不同?或者用旧版RMvx试试 ...

易语言DLL的脚本如下:

.版本 2
.支持库 iconv

.子程序 inputbox, 文本型, 公开
.参数 retuen, 文本型

.如果真 (retuen = “”)
    返回 (“”)
.如果真结束
载入 (窗口1, , 真)
retuen = chr
chr = 到文本 (编码转换 (到字节集 (retuen), #编码_GBK, #编码_UTF_8, ))
返回 (chr)

------------------------------------
.版本 2
.支持库 eAPI

.程序集 窗口程序集1
.程序集变量 box, 矩形数据
.程序集变量 bb, 字节集

.子程序 _按钮1_被单击

chr = 编辑框1.内容
.如果真 (chr = “”)
    chr = “懒虫”
.如果真结束
窗口1.销毁 ()

.子程序 _窗口1_创建完毕

设置窗口透明度 (窗口1.取窗口句柄 (), 130)

box.左边 = 窗口1.左边
box.顶边 = 窗口1.顶边
box.右边 = 窗口1.左边 + 窗口1.宽度
box.底边 = 窗口1.顶边 + 窗口1.高度
bb = 截取屏幕区域 (box, #接口常量.到字节集, )
窗口1.底图 = bb


【声明】
这个易语言脚本入口我已经改过了,为了避免初次定义API的时候被调入,做了参数判别,如果传递空文本参数就直接退出,所以问题1在易语言那边解决掉了。不过还是没弄明白如果在RPG MAKER中该如何解决。


‘‘──bearadam于2012-5-19 22:47补充以下内容

我能不能在函数返回的时候把返回的文本中的换行符号替换成某个表达呢?
’’

点评

rpg maker vx 中的换行符是什么呢?如果我在文章中直接嵌入这个换行符,能否实现换行的效果?  发表于 2012-5-19 23:44
不知道E怎么改换行符。。。  发表于 2012-5-19 22:53
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
690
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

5
发表于 2012-5-19 22:56:26 | 只看该作者
把@inputbox = Win32API.new ('.\inputbox.dll','inputbox', ['p'], 'p')
@[email protected]("")
$game_message.texts.push( "白痴的#{@abc}")全部放在方法里,@inputbox = Win32API.new ('.\inputbox.dll','inputbox', ['p'], 'p')别让这个先运行,要用的时候再运行。。。

点评

那只有等它载入了。。。= =,为什么你要不准2次?  发表于 2012-5-19 23:13
兄弟,你确定调用的时候不会出来两次?我看关于.new的说明,说是会自动载入的啵~~~~  发表于 2012-5-19 23:09
欢迎点此进入我的egames.wink.ws,有RMQQ堂等

[url=http://rpg.blue/thread-317273-1-1.html]短篇八-赶选

http://yun.baidu.com/share/link?shareid=2158225779&uk=169642147&third=0


历险ARPG赢回你的疆域新的战斗模式?…………点击这里:[宋乱贼狂 for QQ堂]
http://rpg.blue/group-368-1.html
programing ....?
[url=http://rpg.blue/thrd-234658-1-1.html]
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2012-2-22
帖子
14
6
 楼主| 发表于 2012-5-19 23:43:10 | 只看该作者
end55rpg 发表于 2012-5-19 22:56
把@inputbox = Win32API.new ('.\inputbox.dll','inputbox', ['p'], 'p')
@[email protected]("")
$game_m ...

为什么不准两次呢?比如说事件问:锄禾日当午的下一句是什么?然后你定义了一个API来接收用户的输入,定义的时候输入框出来一次(此时无论用户输入什么程序都收不到返回值,因为只是函数定义而已),调用再出来一次,这时候用户才可以输入。这样不是很影响使用吗?
回复

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-25 01:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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