作者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
→ putumaxally:Beep = Win32API.new('kernel32', 'll', 'i') 01/12 09:48
→ putumaxally:Beep.call(456,500) 01/12 09:49