在写 XMPP Client的时候,调用 GetDlgItemTextW/GetWindowTextW 发现老是不对,压根拿不到值,而错误码却是0(一些系统能正常工作), 但是GetDlgItemTextA/GetWindowTextA却正常。偶然的机会,发现又无意中修正了这个问题。最终发现原因是最后的参数传了字节数进去。而内存块比较大。
估计是由于函数检查到操作的内存页无效,所有罢工了。所以有以下现象:
1、小于一个页面的buffer应该没有这个问题。
2、在buffer后在定义相同的buffer应该也不会有这个问题(因为内存页有效,只是逻辑有问题,后面定义的变量有可能被覆盖,造成buffer溢出)。
阅读(764) | 评论(0) | 转发(0) |