我有一个遗留的C ++ COM应用程序,可以像这样写一个BSTR(Windows上的UTF-16)。
说,☻(黑色笑脸,即ALT + Numpad 2)在HEX中写得如此 - 应用程序的
保留的060000003B260D000A00
。请注意,前4个字节是为BSTR length
现在,如何从此HEX字符串中显示C#
中的黑色笑脸?在VS调试器中,'\u263B'
显示笑脸,但此处字符串为3B26
。这只是一种数据的一个例子。该应用程序可以转储任何数据(如大型XSL,文本等 - 全部以HEX格式转换)。想法是在C#中正确解释HEX。
This link谈论类似的事情,但不太确定。有什么指针吗?
答案 0 :(得分:0)
使用Marshal.PtrToStringBSTR
从您的BSTR获取托管String
的实例。
请注意,IntPtr
参数应该是指向字符串字符本身开头的指针,而不是编码字符串长度的4个字节的开头。