在 Windows 10 上,我使用的是 ruby 2.7.0。
使用“小提琴”,我尝试在我的 ruby 脚本中打开一个 dll,但我在“Fiddle.dlopen”行收到一条错误消息。有我的红宝石代码:
require 'fiddle'
filename = File.join(__dir__, "Circle.dll")
circle = Fiddle.dlopen(filename)
compute_ray = Fiddle::Function.new(
circle['ComputeRay'],
[Fiddle::TYPE_DOUBLE, Fiddle::TYPE_DOUBLE],
Fiddle::TYPE_DOUBLE
)
r = compute_ray.call(100,5)
puts "ray = #{r}"
“Circle.dll”已经从这个 repo 编译:https ://github.com/chaudard/Circle
有错误消息:
Traceback (most recent call last):
3: from use_dll.rb:6:in `<main>'
2: from /usr/lib/ruby/2.7.0/fiddle.rb:47:in `dlopen'
1: from /usr/lib/ruby/2.7.0/fiddle.rb:47:in `new'
/usr/lib/ruby/2.7.0/fiddle.rb:47:in `initialize': /home/user/code/ruby/dll/Circle.dll: Exec format error (Fiddle::DLError)
谢谢你的帮助。