查看: 2371|回复: 3

[RMVX发布] print的实现

[复制链接]
梦石
0
星屑
175
在线时间
332 小时
注册时间
2013-7-6
回帖
316
发表于 2015-6-8 23:18:17 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

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

×
没有对p和print做以区分(懒了- -||)
不知道为什么,我的rmvx没办法用p和print显示小窗口,不知道是不是通病。于是我草草写了个代码- -|||
  1. MessageBox=Win32API.new("user32.dll","MessageBoxA","lppl","l")
  2. FindWindow=Win32API.new("user32.dll","FindWindowA","pp","l")
  3. TITLE="Project1"#游戏标题名
  4. def p(m)
  5.   m="nil" if m.nil?
  6.   m=m.to_s
  7.   a=FindWindow.call("",TITLE)
  8.   MessageBox.call(a,EasyConv.u2s(m),"message",0)
  9. end
  10. def print(m)
  11.   p m
  12. end
  13. module EasyConv
  14. CP_ACP = 0
  15. CP_UTF8 = 65001
  16. def self.u2s(text)
  17.    m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
  18.    w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
  19.    len = m2w.call(CP_UTF8, 0, text, -1, nil, 0)
  20.    buf = "\0" * (len*2)
  21.    m2w.call(CP_UTF8, 0, text, -1, buf, buf.size/2)
  22.    len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil)
  23.    ret = "\0" * len
  24.    w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil)
  25.    return ret
  26. end
  27. end

  28. p 'Hello'
复制代码

点评

其实可以用MessageBoxW, 这样utf82wide就只有一行了 str.unpack("U*").pack("S*")  发表于 2015-6-9 09:37
偶是熬夜学编程的傻子

八宝粥的基叔

梦石
0
星屑
4957
在线时间
5234 小时
注册时间
2009-4-29
回帖
14054

贵宾

发表于 2015-6-9 09:33:35 | 显示全部楼层
VX一直都可以p和print小窗口的喵~
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2015-6-9 11:52:23 | 显示全部楼层
我一直认为p和print的区别是输出"XXX"的时候会不会带上""

点评

双引号有两重含义 建议chd菊苣仔细想想动手试试  发表于 2015-6-10 21:08
。。。在VA上测还是都可以?  发表于 2015-6-10 21:06
print "\"XXX\""  发表于 2015-6-9 17:56
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-6-9 21:55:49 | 显示全部楼层
写个 inspect 区分一下,代码反而个人更简单的说
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部