函数要求:
输入参数 byte() 输出参数 string将byte()的值是结构体
struct 
    {    short    id;               数据报标记字
          short    number;     机组号 
          short    first;            数据报中第一点数据的顺序号
          short    total;           数据报中数据点的个数
          struct
          {    short     flag;     标记  -1 为模拟量   0/1 为开关量的当前值
                short     stat;     AMW 字
                float       val;      模拟量的当前值
          }  v[50];
      }
我想输出 1个字符串是id + "," + number + "," + first + "," + total + "," + flag + "," + stat + "," + val + "-!~!" 
+
id + "," + number + "," + first + "," + total + "," + flag + "," + stat + "," + val + "-!~!" 
+
id + "," + number + "," + first + "," + total + "," + flag + "," + stat + "," + val + "-!~!" 
....................
不知道能不能实现,我想用它来实现2种语言的接口vb和vc

解决方案 »

  1.   

    CString的Format可能还要转换一下,CString的变量在VB中好像不能使用!!使用CString的GetBuffer和ReleaseBuffer转换为char可能是正确的!!
      

  2.   

    sprintf吧,不用考虑CString和char*的转换了。
      

  3.   

    嗯,没注意还要vb调用,那就用char*
      

  4.   

    char str[200], str1[200];
    memset (str, 0, 200);
    memset (str1, 0, 200);
    struct byte sbyte;       //你的结构体名是byte?
    for (int i = 0; i < 50; i ++)
    {
        sprintf(str,"%d,%d,%d,%d,%d,%d,%f-!~!",sbyte.id ,sbyte.number, sbyte.first, 
            sbyte.total, sbyte.v[i].flag, sbyte.v[i].stat, sbyte.v[i].val);
        strcat(str, str1);
    }
      

  5.   

    to pomelowu(羽战士) ( 
     结构体传进来是byte()类型
    但是他是1个结构体
    实际是这样,我用socket编程实现vb合vc(不能改)通信,vc传过来是1个结构体,但是我在vb没法接受vc的结构,只能用byte()接受,因此我必须用vc 写一个过程,转化成字符串,然后再vb中在对字符串进行处理,来解决通信的问题
      

  6.   

    就是要你把结构体中的变成char,给vb调用
      

  7.   

    噢。对VB不熟。不过我写的代码就是在VC中把接收到的结构体转换为字符串了。假设sbyte是接收到的结构体的名字
      

  8.   

    嗯,pomelowu就是把你接收的结构体转换成字符串的
      

  9.   

    握传进去的是 bype类型,不是结构体类型
      

  10.   

    你不是用VC的部分接收这个结构体,而是VB部分用byte来接收,然后传给VC的部分,并且希望得到这样一个字符串?
      

  11.   

    我对VB不熟,你告诉我VC部分接收到的是什么东西吧。
      

  12.   

    struct _tagData;
        {    short    id;         //      数据报标记字
              short    number;    // 机组号 
              short    first;     //       数据报中第一点数据的顺序号
              short    total;     //      数据报中数据点的个数
              struct _tagV
              {    short     flag;  //   标记  -1 为模拟量   0/1 为开关量的当前值
                    short     stat;  //   AMW 字
                    float       val;  //    模拟量的当前值
              }  v[50];
          } *DATA;BYTE *pbMem;  //收到的byte数组
    char str[200], str1[200];
    memset (str, 0, 200);
    memset (str1, 0, 200);
    DATA sbyte;sbyte = (DATA)pbMem;for (int i = 0; i < 50; i ++)
    {
        sprintf(str,"%d,%d,%d,%d,%d,%d,%f-!~!",sbyte->id ,sbyte->number, 
            sbyte->first, sbyte->total, sbyte->v[i].flag, sbyte->v[i].stat,
            sbyte->v[i].val);
        strcat(str, str1);
    }
      

  13.   

    I can help you to UP