c++ - lual_dofile();不会用 C++ 和 Lua 加载脚本

标签 c++ file lua

你好,我正在尝试让这段代码工作

extern "C"
{
#include <lua.h>
#include "lualib.h"
#include "lauxlib.h"
}

#include "glew.h"
#define GLEW_STATIC
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#include <stdlib.h>
#include <iostream>
#include <fstream>




////////////////////////
////////////////////////
test.h
void Test(void)

{
    int status;

**//The Lua Interpreter**
lua_State  *L = lua_open();


**//Open Lua Libarys**
luaL_openlibs(L);



**//Run Lua Script**
status = luaL_loadfile(L,"Test.lua");

printf( "actually getting to this point!");
getchar();
//Close Lua
lua_close(L);



}

这被命名为 test.lua 这是我的 lua 文件

print"Whats your name?"

function sleep(n)
end

这行不通:(

lual_dofile(L,"Test.lua");

hole 程序编译但不执行脚本或显示 lua 脚本运行的任何视觉反馈 有没有人遇到过这个问题?并且知道为什么?**

最佳答案

你好像有几件事不明白。

luaL_loadfile 从文件加载脚本,编译它,但它 运行它。它只是将它插入 Lua 堆栈,以便您可以使用您认为合适的任何参数运行它。

luaL_dofile 从文件加载脚本,编译它,运行它,从而将脚本从堆栈中弹出。

在出现错误的情况下,luaL_loadfile 将返回一个错误代码来解释错误类型。如果出现错误,它还会将错误消息推送到 Lua 堆栈。如果没有错误发生,则返回 0。

类似地,luaL_dofile如果发生错误会返回1,错误信息会在Lua栈中。

您应该始终检查这些函数的返回值以查看是否发生了错误,并采取相应措施。

关于c++ - lual_dofile();不会用 C++ 和 Lua 加载脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7892762/

相关文章:

Python 列表理解返回嵌套列表

c++ - 在不执行脚本的情况下调用 Lua 函数

lua - 从要使用 FFI 调用的 Rust 函数返回字符串

c++ - 两个矩阵之和的逆

c++ - 具有通用索引类型的数组

python - 如何使用 Python 更新 JSON 文件?

perl - 我应该手动设置 Perl 的 @ARGV 以便我可以使用 <> 打开、扫描和关闭文件吗?

lua - 如何在 Corona 中的 TableView 中插入行?

c++ - 如何在C++中增加指针的指针值

c# - EMGU CV 图像人脸识别