[問題] 要讓使用者寫script控制程式

看板C_and_CPP作者 (z1976)時間12年前 (2013/09/03 00:12), 編輯推噓3(3014)
留言17則, 6人參與, 最新討論串1/1
我在做device control的tool 想要在我的程式裡面開放script供另一個team的人自行控制I/O (主要是SCSI I/O和一些vendor command) 最好是可以像寫C Code那樣 google了 C 直譯器,網路上是有現成的, 但是是執行檔,一行一行的輸入它就幫你執行的那種 (google: UnderC C++ Interpreter) 而且能不能順利的載入那些library進去執行,似乎也是未知數 也看了interpreter pattern,覺得自己動手寫也可行, 是可以較貼近自己的需求, 但不知道要寫多久@@ 可靠度也未被驗證 剛看到Lua這東西, 它可以傳function進去,然後就像呼叫成外部API那樣, 這東西似乎是我的救星 T_T,缺點是變成別人要多學一種語言 想請教這邊有經驗的人,會建議用什麼樣的solution? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.137.91.77

09/03 00:13, , 1F
程式本身是用c還是c++?
09/03 00:13, 1F

09/03 00:16, , 2F
如果是c Lua的變形LuaJIT有個叫FFI的東西整合很方便
09/03 00:16, 2F

09/03 00:17, , 3F
c++有LuaBind很強大但是比較不好學
09/03 00:17, 3F

09/03 00:18, , 4F

09/03 00:19, , 5F
程式本身是C++
09/03 00:19, 5F

09/03 00:19, , 6F
http://ppt.cc/Es7Q luabind tutorial
09/03 00:19, 6F

09/03 00:21, , 7F
不然也可以直接操作Lua C API,不過我覺得不太好寫
09/03 00:21, 7F

09/03 00:25, , 8F
前陣子我在 programming 問了差不多的問題
09/03 00:25, 8F

09/03 00:26, , 9F
最後最無惱的方式是,開一個大的 char buf[BUF_SIZE] 出來
09/03 00:26, 9F

09/03 00:26, , 10F
根據 buf 內容做 script, 關鍵在於生成 execute 後,開
09/03 00:26, 10F

09/03 00:27, , 11F
UltraEditor/PSPad..etc,要做事後修改 buf 動作容易。
09/03 00:27, 11F

09/03 00:29, , 12F
#1HyyOrG6 (Programming) 有興趣進去看看。
09/03 00:29, 12F

09/03 00:40, , 13F
感謝提供資訊~ 我再研究看看
09/03 00:40, 13F
※ 編輯: z1976 來自: 220.137.91.77 (09/03 00:47)

09/03 02:09, , 14F
我會用 Lua,它設計得很簡單,不管是語言本身或 C API
09/03 02:09, 14F

09/03 17:46, , 15F
09/03 17:46, 15F

09/04 13:40, , 16F
keywords: reflection
09/04 13:40, 16F

09/04 13:41, , 17F
建議用python or Java's reflection features
09/04 13:41, 17F
文章代碼(AID): #1I9BZO_K (C_and_CPP)