cocos2dx-3.7版本lua程序入口在哪

cocos2dx-3.7版本lua程序入口在哪,第1张

1.在Cocos-Code-IDE中新建Lua工程

可以在这个工程目录中找到Luaj:

2.新建一个lua类,写上调用android的方法。

我在src/app/models/下面新建了一个Lua文件,命名为:luajTest.lua!

你运行lua时,test1.lua和test2.lua是在当前目录下吗?

Plain Text code

?

/tmp/ cat test1.lua

package.path = package.path .. "./?.lua"

local test2 = require("test2")

/tmp/ ~/tmp/lua-5.2.2/src/lua test1.lua # 没问题

/tmp/ rm test2.lua # 删掉test2.lua

/tmp/ ~/tmp/lua-5.2.2/src/lua test1.lua # 报错了

/home/user/tmp/lua-5.2.2/src/lua: test1.lua:2: module 'test2' not found:

no field package.preload['test2']

no file '/usr/local/share/lua/5.2/test2.lua'

no file '/usr/local/share/lua/5.2/test2/init.lua'

no file '/usr/local/lib/lua/5.2/test2.lua'

no file '/usr/local/lib/lua/5.2/test2/init.lua'

no file './test2.lua'

no file './test2.lua'

no file '/usr/local/lib/lua/5.2/test2.so'

no file '/usr/local/lib/lua/5.2/loadall.so'

no file './test2.so'

stack traceback:

[C]: in function 'require'

test1.lua:2: in main chunk

[C]: in ?

/tmp/ touch test2.lua # 重新建立test2.lua

/tmp/ ~/tmp/lua-5.2.2/src/lua test1.lua # 没问题

/tmp/ cd ~/tmp # 换到别的目录

~/tmp/ ~/tmp/lua-5.2.2/src/lua /tmp/test1.lua # 出错了

/home/user/tmp/lua-5.2.2/src/lua: /tmp/test1.lua:2: module 'test2' not found:

no field package.preload['test2']

no file '/usr/local/share/lua/5.2/test2.lua'

no file '/usr/local/share/lua/5.2/test2/init.lua'

no file '/usr/local/lib/lua/5.2/test2.lua'

no file '/usr/local/lib/lua/5.2/test2/init.lua'

no file './test2.lua'

no file './test2.lua'

no file '/usr/local/lib/lua/5.2/test2.so'

no file '/usr/local/lib/lua/5.2/loadall.so'

no file './test2.so'

stack traceback:

[C]: in function 'require'

/tmp/test1.lua:2: in main chunk

[C]: in ?

当 Lua 调用 C 函数的时候,使用和 C 调用 Lua 相同类型的栈来交互。C 函数从栈中获取她的参数,调用结束后将返回结果放到栈中。为了区分返回结果和栈中的其他的值,每个 C 函数还会返回结果的个数(the  function  returns  (in  C)  the  number  of  results  it  is leaving on the stack.)。

// luacallcpp.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include <stdio.h>

//lua头文件

#ifdef __cplusplus

extern "C" {

#include "lua.h"  

#include <lauxlib.h>  

#include <lualib.h>  

}  

#else

#include <lua.h>

#include <lualib.h>

#include <lauxlib.h>

#endif

int static add(lua_State* L)

{

 //获取第一个参数

 double x=lua_tonumber(L,1)

 double y=lua_tonumber(L,2)

 //返回值压栈,压入两个返回值

 lua_pushnumber(L,x+y)

 lua_pushnumber(L,1000)

//返回值的个数,

 return 2

}

int _tmain(int argc, _TCHAR* argv[])

{

lua_State * L=NULL

/* 初始化 Lua */  

 L = lua_open()

/* 载入Lua基本库 */  

 luaL_openlibs(L)

/* 运行脚本 */  

 luaL_dofile(L, "./script/func.lua")

//函数入栈

 lua_pushcfunction(L,add)

 //设置全局函数名

 lua_setglobal(L,"Add")

 //调用lua函数LUACALLCPP来反调cpp中的add

 lua_getglobal(L,"LUACALLCPP")

 lua_pushnumber(L,10)

 lua_pushnumber(L,34.33)

 //两个参数,两个返回值

 lua_pcall(L,2,2,0)

 //取返回值二

 printf("lua call cpp return val is %f \n",lua_tonumber(L,-1))

 //取返回值一

 printf("lua call cpp return val is %f \n",lua_tonumber(L,-2))

 /* 清除Lua */  

 lua_close(L)

return 0

}

---------------------------------------

--region *.lua

--Date

--此文件由[BabeLua]插件自动生成

print("func.lua hava been loaded")

function LUACALLCPP(x,y)

-- 调用c++中的函数

return Add(x,y)

--print(Add(x,y))

end

--endregion

运行结果:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11333248.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存