Ruby Fiddle dll 搜索路径
Ruby Fiddle dll search Path
我正在尝试使用以下 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) 中,所以我的环境受到限制。
我开始工作的唯一解决方案是编写一个小型 kernel32.dll 库并从其中调用 AddDllDirectory。
我正在尝试使用以下 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) 中,所以我的环境受到限制。
我开始工作的唯一解决方案是编写一个小型 kernel32.dll 库并从其中调用 AddDllDirectory。