Ruby загружает DLL, которая нуждается в другой DLL - PullRequest
0 голосов
/ 06 апреля 2020

Я новичок в Ruby. У меня Ruby код указывает местоположение MyMain.dll и доступные функции. Я загружаю MyMain.dll с помощью этого вызова: require_relative "bin64 / MyMain"

MyMain.dll, в свою очередь, полагается на Support1.dll, Suport2.dll и др. c (на самом деле 80+ поддерживают файлы dll). Эти файлы находятся в bin64 / SupportFiles

Если я включу папку SupportFiles в системный PATH, все загружается и работает так, как должно. Однако меня попросили не менять системный PATH, если это вообще возможно.

Есть ли способ сообщить Ruby расположение SupportFiles, или мне нужно добавить строку require_relative для каждой dll поддержки?

Обновление: после прочтения ответов я попробовал каждый из вариантов в разделе «загрузить файлы поддержки», но без системного пути вызов для загрузки основной библиотеки все равно не выполняется:

#Load support files
Dir["bin64/SupportFiles/*.dll"].each {|file| require file }
Dir["bin64/SupportFiles/*.*"].each {|file| require file }
Dir["/bin64/SupportFiles/*.dll"].each {|file| require_relative file }
Dir["/bin64/SupportFiles/*.*"].each {|file| require file }
require_relative "bin64/SupportFiles"

#Load main dll
require_relative "bin64/MyMainDll"
...