为什么从C++应用程序调用luazip时无法提取文件?
2010-5-20 19:54:11
收藏:0
阅读:200
评论:1
我有一个 C++ 应用程序与 lua 文件交互。我有一个 lua 文件,可以提取 zip 文件,在使用 SciTe 或 Lua 命令行运行时可正常工作。但是当我尝试从 C++ 应用程序运行它时,似乎不起作用。
require "zip"
function ExtractZipFiles(zipFilename, destinationPath)
zipFile, err = zip.open(zipFilename)
-- 遍历 zip 文件中的每个文件
for file in zipFile:files() do
currentFile, err = zipFile:open(file.filename)
currentFileContents = currentFile:read("*a") -- 读取当前文件的所有内容
currentFile:close()
hBinaryOutput = io.open(destinationPath .. file.filename, "wb")
-- 将 zip 中的当前文件写入 zip 外的文件中
if(hBinaryOutput)then
hBinaryOutput:write(currentFileContents)
hBinaryOutput:close()
end
end
zipFile:close()
end
-- 单元测试
ExtractZipFiles("SZProcessTests.zip", "Infections\\")
如果计算机上安装了 Lua,并双击 lua 文件,则会运行并按预期提取文件。但是,如果我尝试像这样从 C++ 运行 lua 文件,则无法正常工作:
void CSZTestClientMessagesDlg::OnBtnExecute()
{
L = lua_open();
luaL_openlibs(L);
luaL_dofile(L, "ExtractZipFiles.lua");
lua_close(L);
return;
}
原文链接 https://stackoverflow.com/questions/2877319
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
首先检查错误:
if (luaL_dofile(L, "ExtractZipFiles.lua")) { std::cerr << "Lua error : " << lua_tostring(L, -1) << std::endl; }
除此之外,我猜测 Lua 找不到 zip 模块 - 检查您的包路径设置,在Lua手册中阅读有关 require 的说明。
总的来说,您需要检查 zip 模块在哪里 (
zip.lua
?),并确保在运行时可以访问它(如果出现其他问题,您可以手动加载它)。