Ruby Fiddle dll搜索路径

时间:2015-11-18 22:01:50

标签: ruby dll libffi fiddle

我正在尝试使用以下小提琴代码加载一个dll :(如果有一种更简单的方法来加载一个dll并在其上调用一个可以解决我的问题的函数,我很高兴听到它)

require 'fiddle' unless defined?(Fiddle)
require 'fiddle/import' unless defined?(Fiddle::Importer)
extend Fiddle::Importer
dlload "Foo.dll"

dlload "C:/Folder/Foo.dll"就像我想要的那样。但问题是Foo.dll是一个c ++ dll,需要在不同位置使用其他几个dll。

如何在没有完整路径的情况下调用dlload "Foo.dll"。简而言之,如何在Ruby dll搜索路径中添加目录列表?

我尝试了以下内容:

$LOAD_PATH.unshift("C:/Folder")
ENV['RUBYLIB'] = "C:/Folder"
ENV['LD_LIBRARY_PATH'] = "C:/Folder"

ruby​​解释器在另一个程序(Sketchup)中运行,因此我的环境受到限制。

1 个答案:

答案 0 :(得分:0)

我开始工作的唯一解决方案是编写一个小的kernel32.dll库并从中调用AddDllDirectory。