string – memo.lines.add的问题
发布时间:2020-12-15 09:22:45 所属栏目:大数据 来源:网络整理
导读:我正在尝试制作一个聊天应用程序,将消息发布到以下形式的备忘录中: USERNAME- Message 但它是这样张贴到我的备忘录: USERNAME 这是我的代码: const cnMaxUserNameLen = 254;var sUserName: string; dwUserNameLen: DWORD; text : string;begin dwUserName
我正在尝试制作一个聊天应用程序,将消息发布到以下形式的备忘录中:
USERNAME-> Message 但它是这样张贴到我的备忘录: USERNAME 这是我的代码: const cnMaxUserNameLen = 254; var sUserName: string; dwUserNameLen: DWORD; text : string; begin dwUserNameLen := cnMaxUserNameLen - 1; SetLength(sUserName,cnMaxUserNameLen); GetUserName(PChar(sUserName),dwUserNameLen); SetLength(sUserName,dwUserNameLen); text:= sUserName + '-> ' + edit1.Text; memo1.Lines.Add(text); 有关如何解决它的任何建议? 解决方法
dwUserNameLen
includes the null-terminator中返回的值.因此您将其包含在文本中.当字符串发送到TMemo后面的Windows编辑控件时,该字符串将作为以null结尾的字符串传递.因此,用户名中的stray null将终止数据传输.
像这样更改代码: SetLength(sUserName,dwUserNameLen-1); 如果出现错误,您还应检查GetUserName的返回值,但我会将该详细信息留给您. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |