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.

Другие вопросы по тегам