一演示程序,有一个编辑框,我在里面输入ASCII文本"0123456789a",另外我点击另外一个按钮,更新(UpdateData),然后显示一个消息框MessageBox。
用spy++查看编辑框的窗口消息,发现有WM_GETTEXT消息,MSDN解释WPARAM存放的是字符长度,LPARAM存放缓冲区地址。spy++解析也的却能够显示刚才的ASCII文本。
然后我用Softice对该编辑窗口用bmsg 100100(当时的窗口句柄) WM_GETTEXT下断,然后G,点击按钮,成功命中断点。用dd命令查看lparam的内存是.123456789a,我就奇怪了,为什么第一个字符是0x00?试了几次都是这样,softice安装没有任何问题。
我就郁闷了,换成其他字符还是一样,第一个字符总是0x00,真是弄不明白。