On 2014-10-27 22:38, kiuhn...@yahoo.it wrote:
Consider this code:

---
from ctypes import *

user32 = windll.user32
user32.MessageBoxA(0, 'ok', 'ok', 0)
---

If I run it in idle or from pycharm, the messagebox shows 'o' instead of 'ok', 
but if I run it from shell, it shows 'ok' like it should.
The same happens with msvcrt.printf().
Why?

You didn't say whether you're using Python 2 or Python 3, but it looks
like you're using Python 3.

There are 2 forms of the MessageBox function, one with the suffix 'A',
which uses bytestrings, and one with the suffix 'W', which uses Unicode
strings.

In Python 3, the str class is a Unicode string, so you'll want the
MessageBoxW function:

from ctypes import *

user32 = windll.user32
user32.MessageBoxW(0, 'ok', 'ok', 0)

Also, the msvcrt.printf function expects a bytestring.
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to