程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> c語言擴展lua 使用教程

c語言擴展lua 使用教程

編輯:關於C語言
 

c語言源代碼:

#include <math.h>
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>

static int hello_sin(lua_State *L){
    double d = luaL_checknumber(L, 1);
    lua_pushnumber(L, sin(d));
    return 1;
}

static const struct luaL_Reg hello_lib[] = {
    {"hello_sin" , hello_sin},
    {NULL, NULL}
};


//luaopen_xxx 系列函數為lua的hook函數,會執行並注冊我們自己的類庫
int luaopen_hello_lib(lua_State *L){
	/*luaL_newlib(L, hello_lib);*/
	luaL_register(L, "hello_lib",hello_lib); // lua 5.1
	return 1;
}

編譯腳本:

#!/bin/bash

gcc a.c -fPIC --shared -o hello_lib.so

使用部分:

[lua]
local N = require(“hello_lib”)
N.hello_sin(1)
[/lua]

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