结构可以转换成字符串类型吗?
在VC中可以利用memmove将结构Flag放到
char str[256]数组中
memmove(&str[pkh->packsize],&flag,sizeof(Flag));>>>>>在C#有没有类似的函数?

解决方案 »

  1.   

    public class DLL
    {
    [DllImport("d:\\mydll.dll",EntryPoint="MyFunction")]
    public static extern int MyFun(int i);
    } private void Form1_Load(object sender, System.EventArgs e)
    {
     DLL.MyFun(1);
    }
      

  2.   

    你要用[DllImport("d:\\mydll.dll",EntryPoint="MyFunction")]
    public static extern int MyFun(string buf,int i);来声明
      

  3.   

    也许我没说清楚使用DLL我是会的,而且连接函数也正常。在头文件中定义了
    //初始化发送数据函数
    [DllImport("SocketClient.dll",EntryPoint="Send")]
    private static extern int Send(char* lpbuf,int nBufLen);现在问题出在发送数据这一步
    private void SendBtn_Click(object sender, System.EventArgs e)
    {
    //填入数据
    try
    {
    Flag  flag_struct = new Flag(); flag_struct.iflag = Int32.Parse(this.textBoxInt.Text);
    flag_struct.address = this.textBoxStr.Text; Byte[] flagBytes = bs.RawSerialize(flag_struct); //标记
    PackHead pack=new PackHead();
    pack.packflag =11;
    pack.packtype = 1;
    pack.packsize = Marshal.SizeOf( pack );
    pack.datasize = flagBytes.Length;
                   

    Byte[]  pkhBytes = bs.RawSerialize(pack);
             ret = Send(sendBytes,sendBytes.Length);

    }
    }转换成byte[]数据socket 服务器端根本就没有相应。
    我想使用String类型。
    有人告诉我怎么样将结构转换成string类型吗?
    不要告诉我用Tostring()
      

  4.   

    const char* buf 也许应该用 StringBuilder替换。不妨测试一下。 
      

  5.   

    事情变得简单了,只要将Struct类型转换成String类型就
    可以了,可是我没有找到相应的函数,
    有谁可以告诉我?
      

  6.   

    楼上说的应该是可以的啊,StringBuilder
    Struct->String类型的转换好像是没有吧
    估计还要用api
      

  7.   

    考,原来就是传byte[]类型只是pack.packtype 的类型没有弄对才出的错晕~~~
      

  8.   

    你可以把struct先转成byte[],然后再由它转成string
    这一步,可以用Encoding
      

  9.   

    请问楼主,哪个 bs.RawSerialize函数是怎么实现的
    新手不好意思