lua 调用C/C++

/**

* Copyright (c) By zengqh.

*

* This program is just for fun or demo, in the hope that it  

* will be useful, you can redistribute it and/or modify freely.

*

* Time: 2012/06/26

* File: demo.cpp

* Blog: http://www.cnblogs.com/zengqh/

**/





#include <Windows.h>

#include <stdlib.h>

#include <stdio.h>

#include <lua.hpp>





int hello1(lua_State* L)

{

    printf("hello1\n");



    return 0;

}



int hello2(lua_State* L)

{

    printf("hello2\n");



    return 0;

}



static const luaL_Reg functions[] =

{

    {"hello1", hello1},

    {"hello2", hello2}

};



int main()

{

    lua_State * L = lua_open();

    luaL_openlibs(L);



    /* love table */

    lua_newtable(L);

    lua_pushvalue(L, -1);

    lua_setglobal(L, "love");



    lua_newtable(L);



    luaL_register(L, 0, functions);



    lua_pushvalue(L, -1);



    lua_setfield(L, -3, "graphics");



    /* empty the stack */

    lua_pop(L, 2);



    if(luaL_loadfile(L, "test.lua") == 0)

    {

        lua_call(L, 0, 0);

    }    



    system("pause");

}

 

test.lua:

function print_hello1()

    love.graphics.hello1()

end



function print_hello2()

    love.graphics.hello2()

end



print_hello1()

print_hello2()  

 

output:

hello1
hello2

你可能感兴趣的:(c/c++)