扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 70|回复: 0

[转载发布] 在RMVA使用Fiddle代替win32api

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    5 天前
  • 签到天数: 193 天

    连续签到: 1 天

    [LV.7]常住居民III

    2608

    主题

    793

    回帖

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    17665
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    21096

    灌水之王

    发表于 6 小时前 | 显示全部楼层 |阅读模式
    [code]#===============================================================# Vx ace  Fiddle##===============================================================module Fiddle    TYPE_VOID   = DL::TYPE_VOID  TYPE_INT    = DL::TYPE_INT  TYPE_LONG   = DL::TYPE_LONG  TYPE_VOIDP  = DL::TYPE_VOIDP  TYPE_FLOAT  = DL::TYPE_FLOAT  TYPE_DOUBLE = DL::TYPE_DOUBLE  TYPE_CHAR   = DL::TYPE_CHAR  TYPE_SHORT  = DL::TYPE_SHORT  TYPE_UCHAR  = -TYPE_CHAR  TYPE_USHORT = -TYPE_SHORT  TYPE_UINT   = -TYPE_INT  TYPE_ULONG  = -TYPE_LONG  #调用约定  DEFAULT = :stdcall  #========== 函数封装 ==========  class Function    def initialize(ptr, args, ret, abi = DEFAULT)      @ptr  = ptr      @args = args      @ret  = ret      @calltype = case abi                  when :stdcall, :STDCALL, 1 then :stdcall                  when :cdecl,   :CDECL,   0 then :cdecl                  else :stdcall                  end      @cfunc = DL::CFunc.new(ptr, ret, 'fiddle_func', @calltype)    end    def call(*args)      temp_ptrs = []      converted = args.zip(@args).map do |val, type|        if type == TYPE_VOIDP          if val.nil?            0          elsif val.is_a?(String)            #转为 UTF-16LE(Unicode)            utf16 = val.encode("UTF-16LE") + "\0\0".encode("UTF-16LE")            bin = utf16.force_encoding("ASCII-8BIT")            ptr = DL::CPtr[bin]            temp_ptrs
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-4-26 06:40 , Processed in 0.136939 second(s), 51 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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