這個過程在這裏解釋: 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