如何将结构(不是结构的指针)传递给 ruby 中的 Win32API 调用?

泰云

我正在尝试将结构传递给 ruby​​ 中的 Win32API 调用。

我怎样才能做到这一点?

结构体不是指针。所以我不能像下面这样编码:

require 'win32api'
get_std_handle = Win32API.new('kernel32.dll',"GetStdHandle",['I'],'I')
h = get_std_handle.call(-11) # STD_OUTPUT_HANDLE

# ['I','P'] is wrong. COORD is not a pointer. it's a structure.
set_console_cursor_position = Win32API.new('kernel32.dll',"SetConsoleCursorPosition",['I','P'],'I') 
p = [10,10].pack('S*')
set_console_cursor_position.call(h,p)
puts "hello" # since above code is wrong, this will not printed at position 10,10

所以问题是:如何将结构(不是指针)传递给 Win32API 调用?

托比

RubyDoc的人已经列出了他们的 Win32Console gem 的源代码,它使用这个,作为

def SetConsoleCursorPosition( hConsoleOutput, col, row )
  @SetConsoleCursorPosition ||= Win32API.new( "kernel32", "SetConsoleCursorPosition", ['l', 'p'], 'l' )
  dwCursorPosition = (row << 16) + col
  @SetConsoleCursorPosition.call( hConsoleOutput, dwCursorPosition )
end

阅读如何将结构作为参数传递给 Ruby 中的 Win32API(Array#pack 和 Array#unpack)也可能对您有所启发。

不幸的是,我不确定您的后续评论的答案,也许您可​​以将其作为另一个问题提出,或者知道的人可以在此处添加另一个答案或评论,或者确实可以随意编辑此答案以添加该信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在win32api中打印之前如何调出设置窗口?

来自分类Dev

带有Win32API的Ruby Windows脚本

来自分类Dev

如何将方法调用存储到Ruby中的数组中,而不是调用它们

来自分类Dev

如何使多行文本框的制表位在Win32api应用程序中工作

来自分类Dev

C#:当您使用Win32API在C#中启动其他程序时,如何隐藏?

来自分类Dev

窗口类名称在win32api中是否更改

来自分类Dev

hInstance在Win32API main-function中的含义

来自分类Dev

如何将方法指针传递给结构(在C / C ++中)?

来自分类Dev

如何在Ruby Motion中同步调用HTTP API

来自分类Dev

如何在Ruby Motion中同步调用HTTP API

来自分类Dev

C头文件如何导入win32api函数?

来自分类Dev

如何使用 Win32API NetShareSetInfo 添加共享权限?

来自分类Dev

pthread:我想将main中的结构指针传递给pthread调用的函数

来自分类Dev

在Ruby中通过SSL进行API调用

来自分类Dev

如何在Win32中正确调用HeapSummary API?

来自分类Dev

如何将资源传递给Android中的方法调用?

来自分类Dev

如何将资源传递给Android中的方法调用?

来自分类Dev

如何在Ruby中调用函数

来自分类Dev

如何在Ruby中模拟方法调用

来自分类Dev

如何在Ruby中调用实例变量

来自分类Dev

通过win32API调用SendInput时这些额外的参数是什么

来自分类Dev

如何将结构值传递到我的打印函数中,然后在main中调用它?-C语言

来自分类Dev

如何将凭证传递给Sonar API调用?

来自分类Dev

Win32API / Win驱动程序:如何检测是否访问了文件

来自分类Dev

在Ruby中传递的块中引用调用对象

来自分类Dev

如何在python中调试win32com调用

来自分类Dev

将指针值传递给c中的结构

来自分类Dev

无法将ruby变量插值到字符串url中以调用JSON API

来自分类Dev

将外部 API 调用到 Ruby on Rails 应用程序中

Related 相关文章

  1. 1

    在win32api中打印之前如何调出设置窗口?

  2. 2

    带有Win32API的Ruby Windows脚本

  3. 3

    如何将方法调用存储到Ruby中的数组中,而不是调用它们

  4. 4

    如何使多行文本框的制表位在Win32api应用程序中工作

  5. 5

    C#:当您使用Win32API在C#中启动其他程序时,如何隐藏?

  6. 6

    窗口类名称在win32api中是否更改

  7. 7

    hInstance在Win32API main-function中的含义

  8. 8

    如何将方法指针传递给结构(在C / C ++中)?

  9. 9

    如何在Ruby Motion中同步调用HTTP API

  10. 10

    如何在Ruby Motion中同步调用HTTP API

  11. 11

    C头文件如何导入win32api函数?

  12. 12

    如何使用 Win32API NetShareSetInfo 添加共享权限?

  13. 13

    pthread:我想将main中的结构指针传递给pthread调用的函数

  14. 14

    在Ruby中通过SSL进行API调用

  15. 15

    如何在Win32中正确调用HeapSummary API?

  16. 16

    如何将资源传递给Android中的方法调用?

  17. 17

    如何将资源传递给Android中的方法调用?

  18. 18

    如何在Ruby中调用函数

  19. 19

    如何在Ruby中模拟方法调用

  20. 20

    如何在Ruby中调用实例变量

  21. 21

    通过win32API调用SendInput时这些额外的参数是什么

  22. 22

    如何将结构值传递到我的打印函数中,然后在main中调用它?-C语言

  23. 23

    如何将凭证传递给Sonar API调用?

  24. 24

    Win32API / Win驱动程序:如何检测是否访问了文件

  25. 25

    在Ruby中传递的块中引用调用对象

  26. 26

    如何在python中调试win32com调用

  27. 27

    将指针值传递给c中的结构

  28. 28

    无法将ruby变量插值到字符串url中以调用JSON API

  29. 29

    将外部 API 调用到 Ruby on Rails 应用程序中

热门标签

归档