我在 C 中有一个长字符串,我想将其传递给 lua 函数。但是因为字符串很长我不想传递它,我想将字符串指针传递给lua。我通过使用 lua_pushlightuserdata 来做到这一点,但在 Lua 中我不能使用这个指针。
C 代码:
char* st = "abcdefghijklmnopqrstuvwxyz1234567890";
lua_getglobal(myLuaState,"kk");
lua_pushlightuserdata(myLuaState,st);
lua_pcall(myLuaState, 1, 0, 0);
Lua代码:
function kk(a)
print(a)
end
代码的结果是:
userdata: 0x41b4d8
最佳答案
你可以在Luajit中使用ffi
function kk(a)
local ffi = require("ffi")
s = ffi.string(a)
print(s)
end
结果是:
abcdefghijklmnopqrstuvwxyz1234567890
关于c - 将字符串指针传递给 lua,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48852273/