Project1

标题: API 调用重复载入怎么办? [打印本页]

作者: bearadam    时间: 2012-5-19 03:36
标题: API 调用重复载入怎么办?
@inputbox = Win32API.new ('.\inputbox.dll','inputbox', ['p'], 'p')
@[email protected]("")
$game_message.texts.push( "白痴的#{@abc}")

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

另外一个问题:在文章显示的时候,换行用什么?我发现API返回的文本换行全部变成框框,无法实现的?dsu_plus_rewardpost_czw
作者: end55rpg    时间: 2012-5-19 06:26
本帖最后由 end55rpg 于 2012-5-19 06:26 编辑

最好把那你那里的脚本发来看看。。。。。
还有第二个问题= =难道是换行符不同?或者用旧版RMvx试试
作者: orzfly    时间: 2012-5-19 06:59
第二个问题可能需要把str按行拆开一行一行压入……
"白痴的#{@abc}".split(/\n/).each &$game_message.texts.method(:push)
作者: bearadam    时间: 2012-5-19 22:45
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补充以下内容

我能不能在函数返回的时候把返回的文本中的换行符号替换成某个表达呢?
’’
作者: end55rpg    时间: 2012-5-19 22:56
把@inputbox = Win32API.new ('.\inputbox.dll','inputbox', ['p'], 'p')
@[email protected]("")
$game_message.texts.push( "白痴的#{@abc}")全部放在方法里,@inputbox = Win32API.new ('.\inputbox.dll','inputbox', ['p'], 'p')别让这个先运行,要用的时候再运行。。。
作者: bearadam    时间: 2012-5-19 23:43
end55rpg 发表于 2012-5-19 22:56
把@inputbox = Win32API.new ('.\inputbox.dll','inputbox', ['p'], 'p')
@[email protected]("")
$game_m ...

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




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