C#中的string怎么转换成C++中的char?
如C++中:
unsigned char progid;
char cmd_id[10];  //  命令字,最大长度为9,以null结束上面这两个在C#中要怎么写呢,以null结束又要怎么写?

解决方案 »

  1.   

    http://www.developerfusion.co.uk/utilities/convertvbtocsharp.aspx
      

  2.   

    弄错了,只有C# 和VB的转换
      

  3.   

    是这样的,我是用C#做的一个程序与C++做的一个程序之间用SOCKET通讯,在C++中定义有一个结构体,
    unsigned char progid;
    char cmd_id[10];  //  命令字,最大长度为9,以null结束
    就是在这个结构体中定义的,而我需要在C#中也定义这样的结构体,然后把这个结构体发到C++的程序中.现在是不知道怎么在C#中定义这个结构体.
      

  4.   

    你通过Socket通讯,不管是C#还是C++,读写的对象都是字节流. 在发送一个字符串之间,你将字符串封装一下, 比如字符串长+字符串.字符串aa,长为2,先用一个短整型保存2,将这个短整型的内存字节加上aa的内容字节,拼到一起发送,读取的时候,先固定读取2个字节流,这里保存的是将要读取的字符串的长度(应该是2),接着根据长度,再读取指定长度(2)的字节流,就是需要的字符串了.不需要结束符号的.
      

  5.   

    你只有自己去转,在c#中string不是以“\0”结束。
      

  6.   

    unsigned char progid;
    char cmd_id[10];  //  命令字,最大长度为9,以null结束C#
    Byte progid;
    System.StringBuilder cmd_id;这样试试。
      

  7.   

    看看这句是什么意思:char datatrans[1];// 传送内容,从datatrans开始依次为数据内容,          // 实际使用时取其地址作为指针使用datatrans值是比较长的,如:1399999999~090~888~这里还可能有中文那这里的[1]又是什么意思?这里只是存一个指针还是什么呢?
      

  8.   

    char datatrans[1];应该只能存一个字符吧?
      

  9.   

    [DllImport("c++.Dll")]
    public static extern void dllmethod([MarshalAs(UnmanagedType.LPStr,SizeConst=10
    )]
    String s);
    }