首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将luac字节码嵌入C/C++源文件

将luac字节码嵌入C/C++源文件
EN

Stack Overflow用户
提问于 2019-03-13 10:51:04
回答 1查看 483关注 0票数 1

如何将字符串包含到C/C++文件中?

代码语言:javascript
复制
$ luac -o test -s test.lua
$ cat test
LuaS�

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

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

代码语言:javascript
复制
luaL_loadfile(lua, bytestring.c_str());

这使得没有必要在运行时加载test.lua。您甚至不必在运行时解释test.lua,对吗?

更新:

对这个问题的前两个注释有助于生成字节字符串,以便您可以将其包含在C/C++代码中。从这个答案我有个想法:

代码语言:javascript
复制
xxd -i test > test.h

它产生了这样的结果:

代码语言:javascript
复制
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;

这很好,但是这不适用于负载串,因为

该函数使用lua_load加载以零结尾的字符串s中的块。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-13 13:01:50

使用负载缓冲器而不是负载串

代码语言:javascript
复制
luaL_loadbuffer(L,test,test_len,"");
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55140109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档