0

考虑以下简单代码:

GetDlgItemText(IDC_EName,LPTSTR(cName),11);

k=strlen(cName);

我想获取用户在编辑框中放置的字符串的长度,但我得到了错误的结果 K=1(总是),因为它是 unicode 字符串,它获取第一个字符,第二个字符为空,我不知道如何修复它。欢迎任何评论。问候,

4

2 回答 2

2

调用. _ _GetDlgItemText()

您也可以直接检查字符串的长度。由于您使用 ANSI/Unicode 兼容的宏,例如LPTSTR,您应该使用 ANSI/Unicode 兼容的 strlen 函数:_tcslen(cName)

_tcslen()strlen()编译为 ANSI/MBCS 和wcslen()编译为 Unicode 时解析为。

于 2011-08-23T17:11:46.547 回答
0

使用wcslen() http://msdn.microsoft.com/en-us/library/78zh94ax%28v=vs.80%29.aspx

当然你可以这样做:

k = GetDlgItemText(IDC_EName,LPTSTR(cName),11);

因为返回值指定了复制到缓冲区的字符数。http://msdn.microsoft.com/en-us/library/ms645489%28v=vs.85%29.aspx

于 2011-08-23T17:01:26.660 回答