这个过程在这里解释: http://msdn.microsoft.com/en-US/library/d1ae6tz5%28v=VS.80%29.aspx 我从那篇文章没有得到的是固定的wchar_t *被传递给依赖尾随空字符的各种C字符串函数。 .NET字符串是否有尾随空字符的规则? System.String文档说:将System :: String转换为wchar_t * - 如何确定结束?
在.NET Framework中,空字符可以嵌入到字符串中。当一个字符串包含一个或多个空字符时,它们包含在总字符串的长度中。
实际上,当我检索System :: String的wchar_t *时,在文本结束之后和空字符之前看到一对垃圾字符。也许这与字符串来自Windows.Forms.TextBox的事实有关? – andriej 2011-05-24 22:49:15
也许,虽然我不明白为什么。 Windows.Forms.TextBox的文本当然必须通过Windows API(这将要求它以空终止),但我不知道为什么你会在那里得到垃圾。 – 2011-05-24 23:22:25