我的代码中有这两行:
TCHAR String[400] = {0};
SendMessageW(hwnd, WM_GETTEXT,sizeof(String), (LPARAM)String);
Run Code Online (Sandbox Code Playgroud)
当我以这种方式使用它时,我有时会遇到运行时错误:"堆栈变量String已损坏"
我用的时候
TCHAR String[400] = {0};
SendMessageW(hwnd, WM_GETTEXT,10, (LPARAM)String);
Run Code Online (Sandbox Code Playgroud)
它没有问题.但我认为使用sizeof()的全部事情是确保没有溢出问题....为什么sizeof(String)不安全,我可以使用什么?
谢谢!祝你有愉快的一天!
您正在使用wchar_t,sizeof(String)将为800,而不是400.修复:
wchar_t String[400] = 0;
SendMessageW(hwnd, WM_GETTEXT, sizeof(String) / sizeof(wchar_t), (LPARAM)String);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
586 次 |
| 最近记录: |