string转换为BSTR后的遍历

    Marshal类对于托管和非托管环境的交互式十分重要的,下面是类型string转换为BSTR后的字符串遍历的示例代码:
 1  static void Main(string[] args)
 2  {
 3      string str = "Hello world";
 4      IntPtr bstr = Marshal.StringToBSTR(str);
 5      IntPtr p = bstr;
 6      char * c;
 7      while (p != (IntPtr)((long)bstr + sizeof(char* str.Length))
 8      {
 9          c = (char*)p;
10          Console.WriteLine(*c);
11          p = (IntPtr)((long)p + sizeof(char));
12      }
13      Marshal.FreeBSTR(bstr);
14  }

posted on 2005-11-10 17:50  哎呀  阅读(987)  评论(0编辑  收藏  举报