C++介面匯出到lua組件

來源:互聯網
上載者:User

玩過lua的朋友肯定知道,C++要匯出介面道lua裡其實挺費事兒的,需要考慮lua調用C++後,棧如何彈出相應類型的參數,如何把C++的傳回值壓入lua棧。最麻煩,不省心且容易出錯的就是匯出一個介面就需要寫一堆破代碼。

lua++?luabind?好吧,就當你們沒用過!

看看下面的介面,也就是你需要寫的代碼,如果覺得還行,下載下來一起討論吧,你覺得呢?

 

這是註冊時用的,state是luaopen出來的,“test1”調用的函數名,第三個bind是C++處理的回呼函數,第四個,嗯,暫時挺醜陋,為了推匯出回呼函數的參數個數及類型和傳回值類型。

 

這個就是處理的回呼函數,當然也可以是成員函數

 

好了,就等著同樣喜歡折騰的你一起折騰吧,如果有建議(不管好壞)都來留言討論吧!

更新:

1. 增加 std::vector、std::pair的支援,其他std::list、std::map等類似,按需再加入 

2. 增加thread local支援

github伺候:https://github.com/chenyu2202863/lua_register/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.