• lua


    c调用lua函数
    double f (double x, double y) { 
        double z; 
        /* push functions and arguments */ 
         lua_getglobal(L, "f"); /* function to be called */
         lua_pushnumber(L, x); /* push 1st argument */
         lua_pushnumber(L, y); /* push 2nd argument */
        /* do the call (2 arguments, 1 result) */ 
        if (lua_pcall(L, 2, 1, 0) != 0) 
         error(L, "error running function `f': %s", 
         lua_tostring(L, -1)); 
        /* retrieve result */ 
        if (!lua_isnumber(L, -1)) 
         error(L, "function `f' must return a number"); 
         z = lua_tonumber(L, -1); 
         lua_pop(L, 1); /* pop returned value */
        return z; 
    }
    
    lua调用c函数
    lua_pushcfunction(l, l_sin) //获取c函数的指针,并在lua中创建一个function类型的值来表示这个函数
    lua_setglobal(l, "mysin")    //赋值给全局变量mysin
    
    static const struct luaL_reg mylib [] = { 
     {"dir", l_dir}, 
     {NULL, NULL} /* sentinel */
    };
    
    int luaopen_mylib (lua_State *L) { 
     luaL_openlib(L, "mylib", mylib, 0); 
    return 1; 
    }
    
    向lua中注册类
    
    向lua中注册类对象
    
    向lua中注册全局对象
  • 相关阅读:
    SpringRequestContext源码阅读
    MyBatis事务管理源码阅读
    linux查找依赖文件
    GitHub
    Qt Quick
    centos7下安装chrome
    软件使用
    排序算法之冒泡排序
    c++学习
    cent6.4使用
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/14063014.html
Copyright © 2020-2023  润新知