如:
BSTR * STR1;
BSTR STR2;
在STR2中已经有数据:如“SMAPLE”
现在想把STR2 的数据 赋值给STR1
请问怎么做?
谢谢

解决方案 »

  1.   

    Have a try!*STR1 = STR2.copy();
      

  2.   

    CString len(STR2);
    memcpy(STR1,STR2,len.GetLength());
      

  3.   

    to
    CString len(STR2);
    memcpy(STR1,STR2,len.GetLength());这个方法我试过了,在第二句时要出错!
    我的STR1是一个空指针,是不是和这个有关系to 
    *STR1 = STR2.copy();
    对于这个,我这里编译不能通过!
      

  4.   

    STR1是个指针呢,大哥,没有分配内存它当然存不下东西。你不想单独分配就只有用其他的,也就是直等“=”。
    CString len(STR2);
    memcpy(STR1,STR2,len.GetLength());这个方法我试过了,在第二句时要出错!
    我的STR1是一个空指针,是不是和这个有关系
    这个就是因为分配的原因
      

  5.   

    我使用了:STR1= &STR2;
    由于这两个变量不在同一个函数中,其中STR1是一个远程指针,
    怎样分配内存给STR1呢?
    我真的很菜,请帮帮忙!
    谢谢!
      

  6.   

    我试着给它分配内存,但是出错:
    BSTR   * STR1 = NULL;
    *STR1 = ::SysAllocString ( L"Hi Bob!" ); 
    我自己觉得,我这个语句有问题,
    但怎样给要STR1分配内存呢,不解!
      

  7.   

    你可以使用CComBSTR,具体请参考MSDN,还是比较方便的。
      

  8.   

    可以 BSTR   bstr = ::SysAllocString (str2); 
    也可以
    BSTR *p = new BSTR;
    *p = SysAllocString(L"aa");
      

  9.   

    BSTR STR2 = L"SAMPLE";
    BSTR *STR1 = new BSTR;
    CopyMemory(STR1,&STR2,sizeof(BSTR));
    STR2 = L"SAMPLEHAHA";//......delete STR1; //用完删除