当调用COM时,VB似乎失去了新行

时间:2012-06-22 14:24:37

标签: vb.net com

我有一个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

没有上述新行。

那为什么呢?

2 个答案:

答案 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编译并测试了这个。