程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> fflua更新-增加對引用的支持,fflua更新增加引用

fflua更新-增加對引用的支持,fflua更新增加引用

編輯:C++入門知識

fflua更新-增加對引用的支持,fflua更新增加引用


簡介:

fflua 發布了有段時間了,很多網友都用了,並且提供了一些很好的反饋。其中一個就是c++接口注冊到lua中時,對引用的支持。這樣使用起來更加方便。

原有方式:

fflua 中注冊c++的類用如下方式:

class base_t
{
public:
    base_t():v(789){}
    void dump()
    {
        printf("in %s a:%d\n", __FUNCTION__, v);
    }
    int v;
};
//! 注冊基類函數, ctor() 為構造函數的類型
    fflua_register_t<base_t, ctor()>(ls, "base_t")  //! 注冊構造函數
                    .def(&base_t::dump, "dump")     //! 注冊基類的函數
                    .def(&base_t::v, "v");          //! 注冊基類的屬性

當c++類注冊成功,後lua代碼中可以操作類對象的指針,並且可以作為參數傳遞給c++的接口:

void dumy_base(base_t* p)
{
    printf("in %s begin ------------\n", __FUNCTION__);
}
fflua_register_t<>(ls).def(&dumy, "dumy");  //! 注冊靜態函數

有網友跟我反映,原來的接口很多都是使用引用作為參數,為了接收lua傳過來的參數,還得需要重新寫一個函數,比較麻煩,於是fflua增加了對引用的支持:

void dumy_base(base_t& p)
{
    printf("in %s begin ------------\n", __FUNCTION__);
}
fflua_register_t<>(ls).def(&dumy, "dumy"); //! 注冊靜態函數

 

總結:

    最新代碼:

          https://github.com/fanchy/fflua

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved