hello lua
发布日期:2021-06-30 22:10:26
浏览次数:2
分类:技术文章
本文共 1910 字,大约阅读时间需要 6 分钟。
前言
lua初体验, 用lua-5.3.3做了一次试验.
记录
// MyLuaTest.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#include #include // 参考资料// http://lua-users.org/wiki/SampleCode// 试验的lua版本 : lua-5.3.3.tar.gzextern "C" {#include "lua.h" // lua基本api#include "lauxlib.h" // lua扩展api#include "lualib.h" // Lua standard libraries};#define LUA_FILE_NAME "test.lua"int __cdecl IF_Test(lua_State* L){ // .lua 调用宿主程序接口 IF_Test, 进入这里 // .lua向宿主程序接口传递的参数在L中 const char* pParam1 = NULL; double fParam2 = 0; double fParam3 = 0; double fRc = -1; ///< 宿主程序向.lua返回结果 int iRc = 1; printf(">> IF_Test\r\n"); // 取出.lua提供的参数 pParam1 = luaL_checkstring(L, 1); fParam2 = luaL_checknumber(L, 2); fParam3 = luaL_checknumber(L, 3); if (0 == strcmp("add", pParam1)) { fRc = fParam2 + fParam3; } else if (0 == strcmp("sub", pParam1)) { fRc = fParam2 - fParam3; } lua_pushnumber(L, fRc); // 压入返回值给.lua return LUA_YIELD; // ! 不能是 LUA_OK}int main(int argc, char* argv[]){ lua_State* L = NULL; int iLuaErr = 0; // 创建lua新环境. lua_open被废弃了 L = luaL_newstate(); if (NULL != L) { luaL_openlibs(L); // 打开lua库 // 注册宿主程序的接口函数给lua用 lua_register(L, "IF_Test", IF_Test); iLuaErr = luaL_dofile(L, LUA_FILE_NAME); // 载入lua文件 if (LUA_OK != iLuaErr) { printf("%s\r\n", luaL_checkstring(L, -1)); } lua_close(L); // 关闭lua环境 } system("pause"); return 0;}
-- file : test.luaio.write(">> test.lua\r\n");-- 调用宿主程序接口, 并传参数addRc = IF_Test("add", 100, 200)-- 使用接口的返回值print("IF_Test(\"add\", 100, 200) = ", addRc)subRc = IF_Test("sub", 100, 200)print("IF_Test(\"sub\", 100, 200) = ", subRc)io.write("<< test.lua\r\n")
run result
>> test.lua>> IF_TestIF_Test("add", 100, 200) = 300.0>> IF_TestIF_Test("sub", 100, 200) = -100.0<< test.lua请按任意键继续. . .
转载地址:https://lostspeed.blog.csdn.net/article/details/52564680 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月12日 13时28分10秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
CodeForces - 629B Far Relative’s Problem(模拟)
2019-04-30
CodeForces - 1059B Forgery (思维)
2019-04-30
CodeForces - 456C Boredom (dp)
2019-04-30
CodeForces - 960B Minimize the error (思维,贪心)
2019-04-30
CodeForces - 97B Superset (思维/分治/构造)
2019-04-30
CodeForces - 675A Infinite Sequence(简单数论 细节)
2019-04-30
CodeForces - 1042B Vitamins (思维)
2019-04-30
ACM 2013 长沙区域赛 Collision (几何)
2019-04-30
ACM 2014 鞍山区域赛 E - Hatsune Miku (dp)
2019-04-30
反向传播&梯度下降 的直观理解程序(numpy)
2019-04-30
CodeForces - 931B World Cup (思维 模拟)
2019-04-30
ACM 2017 北京区域赛 J-Pangu and Stones(区间dp)
2019-04-30
HDU - 5643 King's Game (约瑟夫环变式)
2019-04-30
UVA - 1452 Jump (约瑟夫环变式)
2019-04-30
POJ - 3517 And Then There Was One (约瑟夫环变式)
2019-04-30
HDU - 2068 RPG的错排 (错排+组合数)
2019-04-30
CodeForces 591C Median Smoothing(思维 模拟)
2019-04-30
升级yosemite后java出错的解决
2019-04-30