在嵌入式Ruby解释器中加载外部DLL(例如stringio.so)

时间:2015-08-11 11:48:58

标签: ruby windows dll roo

我使用游戏Dwarf Fortress中嵌入的Ruby解释器(它附带1.8.x,但我已经用1.9.3替换了DLL),并且我试图包含Roo库,所以我可以使用电子表格。

puts(RUBY_DESCRIPTION)

def addDir(libdir)
    $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
end 

addDir('C:\dev\Ruby193\lib\ruby')
addDir('C:\dev\Ruby193\lib\ruby\1.9.1')
addDir('C:\dev\Ruby193\lib\ruby\1.9.1\i386-mingw32')
addDir('C:\dev\Ruby193\lib\ruby\gems\1.9.1\gems\roo-2.1.1\lib')

require 'roo'

filename = "example.ods"
@spreadsheet = Roo::Spreadsheet.open(filename)
puts("Loaded " + filename + " with " + @spreadsheet.sheets.length.to_s + " sheets")

Script running on command line Script running in Dwarf Fortress' dfhack console

从命令行运行,一切都很好,但在嵌入式解释器内部尝试会产生一个“不兼容的库版本”。错误。

我在这里明显遗漏了一些关于不同环境的事情 - 有谁能告诉我我是如何成功加载这些库的(我收集它们虽然它们已被扩展。所以它们实际上是DLL)解释环境?

0 个答案:

没有答案