1因为>
// luacallcppcpp : 定义控制台应用程序的入口点。
//
#include "stdafxh"
#include <stdioh>
//lua头文件
#ifdef __cplusplus
extern "C" {
#include "luah"
#include <lauxlibh>
#include <lualibh>
}
#else
#include <luah>
#include <lualibh>
#include <lauxlibh>
#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/funclua");
//函数入栈
lua_pushcfunction(L,add);
//设置全局函数名
lua_setglobal(L,"Add");
//调用lua函数LUACALLCPP来反调cpp中的add
lua_getglobal(L,"LUACALLCPP");
lua_pushnumber(L,10);
lua_pushnumber(L,3433);
//两个参数,两个返回值
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("funclua hava been loaded")
function LUACALLCPP(x,y)
-- 调用c++中的函数
return Add(x,y)
--print(Add(x,y))
end
--endregion
运行结果:
关于你这个问题我不是很确定你到底是想问怎么匹配出字符串里的路径还是想做windows的路径相关的 *** 作
如果是路径相关 *** 作的话
看以下内容
lua本身不会自带这个相关功能
所以功能一般在库里
如果你有装luaforwindows的话
你可以找一下这个路径下的
C:\Program
Files\Lua\51\clibs\lfsdll
具体案例参考
C:\Program
Files\Lua\51\examples\luadoc\lfsluadoc
----------------------------------------------
如果只是想匹配出路径的话
print(stringmatch("c:\\file\\atxt",("(-)a%txt")))
如果在Windows下(……Linux行不行不知道)
obj=iopopen("cd") --如果不在交互模式下,前面可以添加local
path=obj:read("all"):sub(1,-2) --path存放当前路径
obj:close() --关掉句柄
上述原理是利用Windows的cd命令返回工作目录;至于sub(1,-2)是为了去掉换行符
当然如果你有lua socks或者你有lfs(注意匹配你的Lua版本),你可以使用lfs(Lua File System)
require("lfs")
path=lfscurrentdir()
这个则是Lua文件系统库中的函数。
……就是这样
以上就是关于Cocos2dx的http请求流程,lua版全部的内容,包括:Cocos2dx的http请求流程,lua版、LUA怎么获取指定的函数返回值、怎么用lua获取文件路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)