日期:2013-03-05  浏览次数:20563 次

使用C#拷贝String到struct

By dgiljr

介绍

本文介绍使用C#拷贝String到struct 。

代码

using System;
using System.Runtime.InteropServices;
using System.Text;

class Class1
{

[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public struct MyStruct
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=4)] public string fname;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=4)] public string lname;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=7)] public string phone;
}

public static void Main()
{
string buffer = "abcdefgh2223333";
IntPtr pBuf = Marshal.StringToBSTR(buffer);
MyStruct ms = (MyStruct)Marshal.PtrToStructure(pBuf,typeof(MyStruct));
Console.WriteLine("fname is: {0}",ms.fname);
Console.WriteLine("lname is: {0}",ms.lname);
Console.WriteLine("phone is: {0}",ms.phone);
}
}


From :

http://www.codeproject.com/csharp/gil_structs.asp





biqiong2004@hotmail.com

http://home.ripway.com/2004-6/124912/