我有一个VB方法
Public Sub append_text(ByVal s As String)
f1.TextBox1.AppendText(s)
End Sub
从C ++调用COM
_bstr_t b(L"test\nnew\nlines\n");
ATLENSURE_SUCCEEDED(t->append_text(b));
但是文本框最后说
testnewlines
没有上述新行。
那为什么呢?
答案 0 :(得分:2)
为了完整起见,将我的评论作为答案发布(现在我知道它是正确的......):
不同的操作系统将不同的字符组合视为新行。例如,* nixes使用单个\n
,如代码中所示。另一方面,Windows使用\r\n
组合。因此,字符串中的单个\n
不足以被视为新的行标记。使用\r\n
可以解决问题。
答案 1 :(得分:1)
伊兰是对的。
要在VB端修复它,试试这个
Dim s2 As String = s.Replace(vbLf, vbCrLf)
f1.TextBox1.AppendText(s2)
编辑 Sideshow Bob编译并测试了这个。