1
爲什麼這隻會爲標題和框內打印一個字符。我如何確保它能打印所有內容?MessageBox只顯示一個字符
import ctypes
ctypes.windll.user32.MessageBoxA(0, "info", "title", 3)
只有'我'被打印,只有't'被打印標題,這是什麼問題?
爲什麼這隻會爲標題和框內打印一個字符。我如何確保它能打印所有內容?MessageBox只顯示一個字符
import ctypes
ctypes.windll.user32.MessageBoxA(0, "info", "title", 3)
只有'我'被打印,只有't'被打印標題,這是什麼問題?
如果測試
ctypes.windll.user32.MessageBoxW(0, "info", "title", 3)
應該有 「信息」 和 「稱號」。此外,如果你測試
ctypes.windll.user32.MessageBoxA(0, "info".encode('ascii'),
"title".encode('ascii'), 3)
所以它似乎是某種文字編碼問題。 UTF-16編碼的字符串可能默認傳遞。
>>> 'info'.encode('utf-16-le')
b'i\x00n\x00f\x00o\x00'
>>> 'title'.encode('utf-16-le')
b't\x00i\x00t\x00l\x00e\x00'
由於MessageBoxA
預計NULL
終止的C字符串,從一開始只有兩個字符,即'i\0'
和't\0'
,得到考慮。
'ctypes.windll.user32.MessageBoxA(0,b'info',b'title',3)'也很好 –