以下是引用TonyDeng在2012-10-10 02:16:13的发言:
出现乱码是因为你传入的字符串不是宽字符串,缺了字符串转换那一环。把ANSI字符串传给MessageBoxW(),函数会把字符串解释为Unicode,而不是ANSI,那当然是乱码。在汇编中不注意这一点,就会犯错,但编译器不会,它替你做了你“忘记”做的事。换句话说,汇编的一切都要你自己来,错了没人可以救你。
出现乱码是因为你传入的字符串不是宽字符串,缺了字符串转换那一环。把ANSI字符串传给MessageBoxW(),函数会把字符串解释为Unicode,而不是ANSI,那当然是乱码。在汇编中不注意这一点,就会犯错,但编译器不会,它替你做了你“忘记”做的事。换句话说,汇编的一切都要你自己来,错了没人可以救你。
老大 那这个怎么办、
比如在data里定义了一句要打印的字符串: szText db 'Hello, World!', 0
显然这个是ANSI编码 机器也会这么传, 怎么人为的定义unicode 呢?
真的如Z版所说有的编译器写死了 ? 而且貌似那个__UNICODE__ equ 1也不管用 我试过了。
梅尚程荀
马谭杨奚