忽略Edit Controls中WM_GETTEXTLENGTH的潜在不准确性是否安全?
MSDN文档指出:
发送WM_GETTEXTLENGTH消息时,DefWindowProc函数会返回文本的字符长度。在某些情况下,DefWindowProc函数返回的值会大于文本的实际长度。这种情况发生在ANSI和Unicode混合使用的场景中,原因是系统允许文本中可能存在双字节字符集(DBCS)字符。
- 我认为这类情况不会出现在WCHAR编辑控件中,因为它仅使用WCHAR编码。
- 我打算直接忽略这些特殊情况,将WM_GETTEXTLENGTH的返回值直接作为文本长度使用。
- 若WM_GETTEXTLENGTH的返回值并非通过
strlen类操作实时计算,而是预先存储好的,那会带来明显的性能提升。我计划通过Ghidra反编译记事本程序来验证这一点。
内容的提问来源于stack exchange,提问作者user363406
相关产品推荐
相关产品推荐

