这个问题涉及到所谓的P/Invoke,也就是平台调用。
在MSDN中相关的主题包括P/Invoke、Marshal、blittable等,你可以以这些关键词搜索。在这里我简要说一下。
与int、double类型不同,字符串不属于blittable类型,因此需要做额外的处理。有两种方法:
一、在相关函数前显式添加[MarshalAs(UnmanagedType.LPWStr)]类似的Attribute,并做处理。
二、以IntPtr接收字符串所占内存的地址,然后用Marshal.PtrToStructure()之类的方法把IntPtr指针类型转换为字符串。
建议先搞清楚P/Invoke的基本概念再试试。
编码转换有一个专门的类 Encoding 里面有各种转换
按照你的方法尝试一下 应该可以的!