Ruby Fiddle DLL путь поиска
Я пытаюсь загрузить 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++, которая требует нескольких других библиотек в разных местах.
Как я могу просто позвонить dlload "Foo.dll"
без полного пути. Вкратце, как мне добавить список каталогов в путь поиска Ruby dll?
Я пробовал следующее:
$LOAD_PATH.unshift("C:/Folder")
ENV['RUBYLIB'] = "C:/Folder"
ENV['LD_LIBRARY_PATH'] = "C:/Folder"
Интерпретатор ruby работает внутри другой программы (Sketchup), поэтому моя среда ограничена.
1 ответ
Решение
Единственное решение, которое я получил, - это написать небольшую библиотеку kernel32.dll и вызвать из нее AddDllDirectory.