当我运行以下代码时,我得知"不知道如何转换参数"错误。我正在努力削减我的名字。请帮助。
import ctypes
from itertools import islice
i = "sakthi srinivasan"
sliced_text = islice(i, 0, 6)
ctypes.windll.user32.MessageBoxW(0, sliced_text, "MsgBox", 0)
答案 0 :(得分:0)
MessageBoxW
的第二个参数是字符串 1 。函数itertools.islice
返回i
中字符的迭代器。由于ctypes无法弄清楚如何将其强制转换为字符数组,因此会抛出错误"不知道如何转换参数......"。
您可以将迭代器转换为带有''.join(sliced_text)
的字符串,但这里最好的方法是使用i[0:6]
作为第二个参数传递Python字符串中内置的切片。这是在Python中获取子字符串的标准方法。
const char*
或const wchar_t*
,具体取决于您是否使用UNICODE配置进行编译。