在C++中使用嵌入式lua从外部目录加载文件?

我正在使用Lua在C++中编写一个基本的脚本系统。其中一个粘合函数从这里调用:

lua_register(luaVM, "openFile", l_dial.l_specifyF);

并且编码如下:

static int l_specifyF(lua_State* luaVM) {
    const char* c = lua_tostring(luaVM, -1);
    cDialogManager::getSingletonPtr()->clearVector();
    try{
        luaL_dofile(luaVM, c);
    }

    catch(...) {
        cout << "Unable to open file" << endl;
        luaL_dofile(luaVM, "startup.lua");
    }
    return 1;
}

当我在我的应用程序中调用它时,如果我从本地目录调用文件,如openFile("somefile.lua")openFile("someotherfile.lua"),它可以100%工作,但在调用位于外部文件夹中的文件时,例如openFile("scripts/ohdear.lua"),它会崩溃。

请注意,这在某些情况下确实起作用,这只增加了困惑。有任何原因吗?

如何修复我的应用程序以使用来自外部目录的文件?

原文链接 https://stackoverflow.com/questions/4052698

点赞
stackoverflow用户472245
stackoverflow用户472245

从您的描述中,我严重怀疑这与文件夹结构有关。 我的猜测是,您正在观察一个先前错误的迟到反应...

2010-10-29 16:22:19