⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 work.cpp

📁 c调用lua语言....脚本
💻 CPP
字号:
// work.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <lua.hpp>
#include <process.h>
#include <stdlib.h>

lua_State *L;

void error(lua_State *L,const char *fmt,...)
{
	va_list argp;
	
	va_start(argp,fmt);
	vfprintf(stderr,fmt,argp);

	va_end(argp);

	lua_close(L);

	system("PAUSE");

	exit(EXIT_FAILURE);
}

double f(int argnum,...)
{
	double z;
	double a;
	lua_getglobal(L,"sum");
	va_list arg;
	va_start(arg,argnum);
	for(int i=0;i<argnum;i++)
	{
		a=va_arg(arg,int);
		lua_pushnumber(L,a);
	}
	va_end(arg);
	if (lua_pcall(L,argnum,1,0)!=0)
	{
		error(L, "error running function'sum':%s",lua_tostring(L,-1));
	}

	if (!lua_isnumber(L,-1))
	{
		error(L,"function 'sum' must return a number");
	}

	z=lua_tonumber(L,-1);
	lua_pop(L,1);
	return z;
}

int _tmain(int argc,_TCHAR* argv[])
{
	L=luaL_newstate();
	luaL_openlibs(L);
	if(luaL_loadfile(L,"sum.lua") || lua_pcall(L,0,0,0))
	{
		error(L,"cannot run lua script. file:%s",lua_tostring(L,-1));
	}
	printf("%f\n",f(7,2,3,5,4,3,2,1));   //1.个数  2... 各个数字
	lua_close(L);
	system("PAUSE");

	return 0;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -