gpt4 book ai didi

c++ - 将 luac 字节码嵌入到 C/C++ 源文件中

转载 作者:行者123 更新时间:2023-11-30 03:17:54 26 4
gpt4 key购买 nike

如何将 lua-bytecode-string 包含到 C/C++ 文件中?

$ luac -o test -s test.lua
$ cat test
LuaS�

xV(w@@A@$@&�printTestj

现在,如果您可以将这个字节串插入到 C/C++ 文件中,您实际上可以

luaL_loadfile(lua, bytestring.c_str());

这使得它不必在运行时加载 test.lua。您甚至不必在运行时解释 test.lua,对吧?

更新:

此问题的前两条评论有助于生成字节串,以便您可以将其包含在 C/C++ 代码中。 From this answer我有这个想法:

xxd -i test > test.h

它创建了这个:

unsigned char test[] = {
0x1b, 0x4c, 0x75, 0x61, 0x53, 0x00, 0x19, 0x93, 0x0d, 0x0a, 0x1a, 0x0a,
0x04, 0x08, 0x04, 0x08, 0x08, 0x78, 0x56, 0x00, /* ... */, 0x00};
unsigned int test_len = 105;

这很好,但是这不能luaL_loadstring一起工作, 因为

This function uses lua_load to load the chunk in the zero-terminated string s.

注意:在test中有0作为数据。

最佳答案

使用luaL_loadbuffer而不是 luaL_loadstring :

luaL_loadbuffer(L,test,test_len,"");

关于c++ - 将 luac 字节码嵌入到 C/C++ 源文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55140109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com