1
我想加載一個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++ dll,需要其他幾個位於不同位置的dll。
我該如何去打電話dlload "Foo.dll"
沒有完整的路徑。總之,如何將目錄列表添加到Ruby dll搜索路徑中?
我曾嘗試以下:
$LOAD_PATH.unshift("C:/Folder")
ENV['RUBYLIB'] = "C:/Folder"
ENV['LD_LIBRARY_PATH'] = "C:/Folder"
Ruby解釋器的另一個程序(Sketchup的)內運行,所以我的環境受到限制。
以我的經驗,我一直無法讓小提琴在除MacOS以外的任何系統上自動查找我的DLL文件。 在Linux上,我過去使用過pkg-config,但這對於那些不具有pkg-config的非開發者來說並不友好。然後我直接使用ldconfig。 在Windows上,我編寫了一個ruby腳本,用於在當前工作目錄中搜索DLL,然後搜索Windows/System32,然後搜索Windows文件夾本身。這似乎是大多數Windows應用程序的搜索順序。 – jellymann