作者AIGecko (壁虎猫耳控)
看板Ruby
标题[问题] 使用外部dll
时间Sun Dec 11 22:54:57 2011
环境: Ruby1.9.3 Win32-api1.4.8 DevC++5.0.0.8
状况:
因为之後想写个游戏於是想说能不能把资料库放在dll里
需要资料就呼叫dll把资料拿出来
(好像多此一举 本来就有资料库可以用...)
於是我就做了实验
用c++编译了一个db.dll
给db一个int会回传一个字串
像是 SCRIPT(1) #=> "1,1,test"
(只是实验用 名称就...)
於是test.rb就是:(使用内建的函式库)
require "Win32API"
puts Win32API.new('db','SCRIPT','I','P').call(1)
gets
却出现了:
C:/Ruby193/lib/ruby/1.9.1/Win32API.rb:14:in `[]': unknown symbol "SCRIPT"
(Loadrror)
我只好改用Win32-api(下载的gem)
程式码是这样:
require "win32/api"
puts Win32::API.new('SCRIPT','I','P','db').call(1)
gets
可是结果变成:
1.rb:2:in `initialize': Unable to load function 'SCRIPT', 'SCRIPTA', or
'SCRIPTW' (Win32::API::LoadLibraryError)
我搞不清楚是怎麽回事
查英文资料也查不太到
好像只有我有这个问题
有哪位高手研究过这个吗?
帮小弟说明一下
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.232.142.58
1F:→ putumaxally:Beep = Win32API.new('kernel32', 'll', 'i') 01/12 09:48
2F:→ putumaxally:Beep.call(456,500) 01/12 09:49