Project1

标题: 谁来详解一下脚本 [打印本页]

作者: 820195124    时间: 2013-7-31 15:50
标题: 谁来详解一下脚本
关于API接口,每一部分负责哪里,自己的程序如何就可以连接到系统API

作者: end55rpg    时间: 2013-8-1 15:41
写出要用的API名,传递 传出传入类型(调用的传值等等)即可,你可以理解成函数、方法。
你只需负责用这个强大的API即可
作者: 铃仙·优昙华院·因幡    时间: 2013-8-1 16:00
本帖最后由 铃仙·优昙华院·因幡 于 2013-8-1 16:02 编辑

咱只能说用 Win32API 这个 Ruby 类来调用.

引用一下:
RUBY 代码复制
  1. Win32API.new(dllname, proc, import, export)
  2. 加载名为dllname的DLL,生成API函数proc的对象。在import中指定proc的参数类型列表,在export中指定proc返回值的类型。
  3.  
  4. 使用下列字符串或数组来指定类型。
  5.  
  6. "p" 指针
  7. "n", "l" long
  8. "i" int
  9. "v" void
  10. 若import为nil,则看成是没有参数。若export为nil,则看做是没有返回值(void)


Win32API.new 可以成是 C++ 里动态调用所要做的第一步, 也就是
C 代码复制
  1. HINSTANCE hdll = ::LoadLibrary(dllname);
  2. typedef [export] (*DllFunc)([import]);
  3. DllFunc _DllFunc = (DllFunc)::GetProcAddress(hdll, proc);


以上算是 C++ 代码吧. 虽然要改改,不过了为了对应好看所以就这么写了. 不过既然知道了 API 了, 那么 C++ 应该或多或少知道的吧.

对于 Ruby 就是要调用这个API, Win32API#Call 方法来调用. 其实就是类似函数或者是方法的调用. 相对 C++ 就是, _DllFunc(参数);

一个小小的例子: http://rpg.blue/forum.php?mod=re ... 6&fromuid=63926 122楼





至于说有什么 API 能用, 这个就要看 MSDN 了. 里面有详尽的 API 列表, 功能, 参数等信息. 前提是用的是 Windows 和 RGSS 能调用.

要自定义的话, 那么可以查阅相关语言的 DLL 编写指南.





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