1
我有一個關於ruby Interop和共享庫的問題。從Ruby調用共享庫
當我使用以下代碼:
module mymodule
extend DL::Importer
dlload './lib.so'
extern 'int Open(int my_id, int size, int creat)'
end
int類型沒有在紅寶石上下文識別。爲什麼?
我有一個關於ruby Interop和共享庫的問題。從Ruby調用共享庫
當我使用以下代碼:
module mymodule
extend DL::Importer
dlload './lib.so'
extern 'int Open(int my_id, int size, int creat)'
end
int類型沒有在紅寶石上下文識別。爲什麼?
不要在您的通話extern
指定參數名稱,只是類型:
extern 'int Open(int, int, int)'
感謝,但現在我有這個其他問題:/usr/lib/ruby/1.9.1/dl/func。 rb:55:在'call'中:沒有從nil到整數的隱式轉換(TypeError) from /usr/lib/ruby/1.9.1/dl/func.rb:55:in'call' from test.rb: 13:在'CloseMemoryMapped' from test.rb:34:'CallProcess' from test.rb:45:in'' –
我不能在begin - > end block之外聲明一個變量嗎? –
在這種情況下開始 \t添加my_id = 1 #random_id \t大小= 2048 \t穿心蓮= 1 \t ID = 1 \t ID =提出Tesuto.Open(添加my_id,大小,穿心蓮) \t 救援 \t通( ) 確保 \t把Tesuto.Close(id) 結束 –