我试图将一个变量连接起来,使我的输出更“漂亮”,但是当与其他字符串值连接时,它似乎输出为空字符串。
输出代码摘录如下:
输出代码摘录如下:
local name = ""
local SendMessage = alien.User32.SendMessageA
SendMessage:types{ret = "int", abi = "stdcall", "pointer", "int", "int", "string"}
SendMessage(handle, LB_GETTEXT, index, name)
print(type(name)) --To verify that it is a string type
print(name) --Prints the name "Sample 1" perfectly fine
print("Title: " .. name .. "\n") --Doesn't print the name variable "Sample 1"
输出:
通过调用Alien for Lua中的WINAPI SendMessage函数从User32.dll
设置name
变量。我认为这可能是问题的一部分,但正如上面所示,当单独调用它时,该变量被设置为类型(Lua)“string”,并且打印正确。然而,每当将其与任何内容连接时,它就像空字符串(或类似的东西)。
编辑:我还尝试了tostring(name)
和alien.tostring(name)
。两者都无法解决问题。
reallyALuaString = alien.tostring(name)
然后跟着print("Title: " .. reallyALuaString .. "\n")
吗? - Ray Toalconst char *
,但不允许修改它们的内容。Alien无法打破这个约定,最多只能创建一个全新的Lua字符串来分配给变量,并且它必须知道预先分配一个缓冲区以接收从SendMessage()
返回的结果。 - RBerteig