如题,如果能,怎么写
我现在写的是
void func(void * pDest)
{
   CString strTemp="er";
   memcpy(pDest,&strTemp,sizeof(CString));
}
得到的数据不对

解决方案 »

  1.   

    你这个pDest传递进去的实参是什么
      

  2.   


    memcpy(pDest,(LPCTSTR)strTemp,sizeof(strTemp));这样呢
      

  3.   

    是个CString 类型的变量
    例如
    CString str ="";
    func(&str);
      

  4.   

    不应该这么做。
    因为如果CString里有个指针,指向一个地址放数据.
    你这么做以后这个指针得到一个拷贝。在2个对象其中一个析构了的时候,该指针指向的内容被释放,这时候使用另外一个对象是危险的。
      

  5.   

    给你一段例子CString  aa,bb;
    bb = "123"; char * p = (LPTSTR)(LPCTSTR)aa; memcpy(p,(LPCTSTR)(bb),sizeof(bb));这样以后,aa的值是123
    去试试吧
      

  6.   

    哦,我理解错了,是往buffer里复制。
      

  7.   

    我现在是想通过这个函数,能给得到相应类型的值,所以只能传void * pDest
    能不能通过函数内部的转换,把这个CString 类型的值赋给pDest
    void func(void * pDest)
    {
       CString strTemp="er";
       memcpy(pDest,&strTemp,sizeof(CString));
    }
    能进行至
      

  8.   

    把aa转成char *
    bb转成const char * 就可以了
      

  9.   

    在不改动这个函数参数的情况下怎么实现
    void func(void * pDest)
    {
    }
      

  10.   

    void func(void* pDest)
    {
       memcpy( pDest, (LPCTSTR)strSour), strSour.GetLength()*sizeof(TCHAR));
    }
      

  11.   

    void func(void * pDest)
    {
      *(CString *)pDest = "er";
    }
      

  12.   

    hijack(Time timeIsMoney)
    的好用,谢谢了