lua调用 c++ 的 两个函数: 一个是 对lua 数组 调用函数替换 数组元素,一个 分割字符串
test.lua
--数组操作
a = {1,2,3,4,5,6}
swapArray(a,function(t)
return t + 1
end)
local function printArray(array)
for k,v in ipairs(array) do
print(k,"\t",v,"\n")
end
end
printArray(a)
--分割字符串
a = split("a,b,c,d,e,fgh,ijk",",")
printArray(a)
cpp
// LuaCApi.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <string>
using namespace std;
extern "C"{
#include "lua\lua.h"
#include "lua\lauxlib.h"
#include "lua\lualib.h"
}
void error(lua_State * l,const char * fmt,...){
va_list va;
va_start(va,fmt);
vfprintf(stderr,fmt,va);
va_end(va);
lua_close(l);
exit(EXIT_FAILURE);
}
int swapArray(lua_State *l){
luaL_checktype(l,1,LUA_TTABLE);
luaL_checktype(l,2,LUA_TFUNCTION);
int len = lua_objlen(l,1);
for (int i = 1; i <= len; i++)
{
lua_pushvalue(l,2);
lua_rawgeti(l,1,i);
if (lua_pcall(