CString 可能已经被析构掉了
用CString::AllocSysString()
在收到并用完后用::SysFreeString()

解决方案 »

  1.   

    进程间是可以发送结构变量的,
    你是用Socket还是什么?
    不管用的什么,大概是你的CString 用得不对,
    你的CString 在一个结构中
    大概如下
    struct sample{
    ...
    CString abc;
    ...
    }
    CString abc;实际上是一个指针,你把abc传到另一个地方,但只是把指针传过去,肯定到了对方就不知道指到什么地方去了,
    大概是这个原因引起的吧
      

  2.   

    对的,在用winsock传送数据的时候最好用 char ,因类cstring是不能确定长度的,像send(s, &str, sizoef(STR), 0);
      

  3.   

    我有一个CString的总结, 在最上方. 你仔细看看也许会知道其真正原因.我没见到你的代码. 我猜测原因是: 你并没有真正发送CString中的字串
    出去. 而只是发送CString中的指向串的指针的值(任何CString对象只有4个
    字,即一个指向串的指针). 所以导致接收方收不到的情况.模拟你的代码:
    struct test
    {
      int a;
      CStirng str;
      char b;
    } var1;
    var1.a = 5;
    var1.str = "abc";
    b = 'b';...
    send(hSocket, &var1, sizeof(var1), 0);