[問題]在ruby 執行外部程式(C++)的方法?

看板Ruby作者 (Milton)時間11年前 (2013/04/28 14:24), 編輯推噓4(408)
留言12則, 7人參與, 最新討論串1/1
環境: Ruby 1.8.7 狀況: 我想要在RUBY程式寫讓他能執行我外部已經寫好的C++程式, 並要能帶入參數,請問一下有哪些方法? 目前有去查說SWIG可以但是好複雜看不懂, 還有%x,exec,system,IO.popen這些方法適用嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.107.59

04/28 15:14, , 1F
FFI?
04/28 15:14, 1F

04/28 15:23, , 2F
直接執行外部程式的話用system("你的程式 參數")
04/28 15:23, 2F

04/28 15:25, , 3F
想要用output出來的資料的話,用%x"你的程式 參數"
04/28 15:25, 3F

04/28 16:04, , 4F
請問我的c++程式要放在哪? 我可以把RUBY輸入的參數餵給
04/28 16:04, 4F

04/28 16:04, , 5F
C++程式嗎?
04/28 16:04, 5F

04/29 02:21, , 6F
猜你想用的是這樣:`a.out #{arg1} #{arg2} #{arg3}`
04/29 02:21, 6F

04/29 02:22, , 7F
Ruby 直接參數是:ARGV[0]、ARGV[1]、ARGV[2]……。
04/29 02:22, 7F

04/29 02:23, , 8F
所以變成 `a.out #{ARGV[0]} #{ARGV[1]}` 這樣。
04/29 02:23, 8F

04/29 17:00, , 9F
用ShellExecute也可以吧 Ruby可以呼叫Win32API
04/29 17:00, 9F

04/29 17:03, , 10F
str="";ARGV.each{|arg| str<<arg<<" "}
04/29 17:03, 10F

04/30 00:19, , 11F
FFI +1
04/30 00:19, 11F

05/13 23:06, , 12F
pipe open => IO.popen(command){|pipe| xx=pipe.read}
05/13 23:06, 12F
文章代碼(AID): #1HVC2o8b (Ruby)
文章代碼(AID): #1HVC2o8b (Ruby)