Ruby から Windows DLL 関数を呼び出すにはどうすればよいですか?

Win32API を見てください 標準ライブラリ。これは、Windows 32 API または DLL へのかなり簡単な (しかし難解な) インターフェイスです。

ドキュメントはこちら、いくつかの例はこちらです。あなたに味を与えるために:

require "Win32API"    
def get_computer_name
  name = " " * 128
  size = "128"
  Win32API.new('kernel32', 'GetComputerName', ['P', 'P'], 'I').call(name, size)  
  name.unpack("A*")  
end 

Fiddle を使用できます:http://ruby-doc.org/stdlib-2.0.0/libdoc/fiddle/rdoc/Fiddle.html

Fiddle は、1.9.x で Ruby の標準ライブラリに追加されたあまり知られていないモジュールです。 Ruby から C ライブラリを直接操作できます。

これは、ある言語で書かれたコードが別の言語で書かれたメソッドを呼び出せるようにする一般的な C ライブラリである libffi をラップすることによって機能します。聞いたことがない方のために説明すると、「ffi」は「外部関数インターフェイス」の略です。また、C だけに限定されているわけではありません。Fiddle を習得すると、Rust やそれをサポートする他の言語で記述されたライブラリを使用できます。

http://blog.honeybadger.io/use-any-c-library-from-ruby-via-fiddle-the-ruby-standard-librarys-best-kept-secret/

require 'fiddle'

libm = Fiddle.dlopen('/lib/libm.so.6')

floor = Fiddle::Function.new(
  libm['floor'],
  [Fiddle::TYPE_DOUBLE],
  Fiddle::TYPE_DOUBLE
)

puts floor.call(3.14159) #=> 3.0

または

require 'fiddle'
require 'fiddle/import'

module Logs
  extend Fiddle::Importer
  dlload '/usr/lib/libSystem.dylib'
  extern 'double log(double)'
  extern 'double log10(double)'
  extern 'double log2(double)'
end

# We can call the external functions as if they were ruby methods!
puts Logs.log(10)   # 2.302585092994046
puts Logs.log10(10) # 1.0
puts Logs.log2(10)  # 3.321928094887362

ruby/dlhttp://groups.google.com/group/comp.lang.ruby/browse_thread/thread/95a483230caf3d39 も使えると思います

または ffi により、より簡単に、よりクロス VM フレンドリーになります:

https://github.com/ffi/ffi/wiki/Windows-Examples