lua 与 c/c++ 交互(6) lua调用C++(使用数组 和字符串函数)

本文展示了如何在Lua中调用C++编写的函数,具体包括两个功能:一是操作Lua数组,替换其元素;二是利用C++函数处理字符串,实现字符串的分割。通过实例代码介绍了交互过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值