能不能用memcpy把CString 拷贝到CString 类型中 如题,如果能,怎么写我现在写的是void func(void * pDest){ CString strTemp="er"; memcpy(pDest,&strTemp,sizeof(CString));}得到的数据不对 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你这个pDest传递进去的实参是什么 memcpy(pDest,(LPCTSTR)strTemp,sizeof(strTemp));这样呢 是个CString 类型的变量例如CString str ="";func(&str); 不应该这么做。因为如果CString里有个指针,指向一个地址放数据.你这么做以后这个指针得到一个拷贝。在2个对象其中一个析构了的时候,该指针指向的内容被释放,这时候使用另外一个对象是危险的。 给你一段例子CString aa,bb; bb = "123"; char * p = (LPTSTR)(LPCTSTR)aa; memcpy(p,(LPCTSTR)(bb),sizeof(bb));这样以后,aa的值是123去试试吧 哦,我理解错了,是往buffer里复制。 我现在是想通过这个函数,能给得到相应类型的值,所以只能传void * pDest能不能通过函数内部的转换,把这个CString 类型的值赋给pDestvoid func(void * pDest){ CString strTemp="er"; memcpy(pDest,&strTemp,sizeof(CString));}能进行至 把aa转成char *bb转成const char * 就可以了 在不改动这个函数参数的情况下怎么实现void func(void * pDest){} void func(void* pDest){ memcpy( pDest, (LPCTSTR)strSour), strSour.GetLength()*sizeof(TCHAR));} void func(void * pDest){ *(CString *)pDest = "er";} hijack(Time timeIsMoney)的好用,谢谢了 列表控件数据存储问题 用GDI+在VC里绘制Bezier曲线的问题!不知道有没有谁遇到过. 服务器如何限制同时服务的客户端的数目? 懂vc的朋友,請幫忙查看這個問題出在哪裡? 支持Automation的多文档无法创建第二个接口!VB测试错误429 如何使用com枚举器? 求VC++游戏程序 求救,如何给CTime赋值(找不到MSDN,只能求助CSDN了) 新手关于平台的问题,希望大家能帮忙解惑~~谢谢 如何将长整型变量的值依次放置到4个BYTE变量中 弹出窗口拦截是怎么作出来的? [求助]如何用vc编写网页登录程序?
memcpy(pDest,(LPCTSTR)strTemp,sizeof(strTemp));这样呢
例如
CString str ="";
func(&str);
因为如果CString里有个指针,指向一个地址放数据.
你这么做以后这个指针得到一个拷贝。在2个对象其中一个析构了的时候,该指针指向的内容被释放,这时候使用另外一个对象是危险的。
bb = "123"; char * p = (LPTSTR)(LPCTSTR)aa; memcpy(p,(LPCTSTR)(bb),sizeof(bb));这样以后,aa的值是123
去试试吧
能不能通过函数内部的转换,把这个CString 类型的值赋给pDest
void func(void * pDest)
{
CString strTemp="er";
memcpy(pDest,&strTemp,sizeof(CString));
}
能进行至
bb转成const char * 就可以了
void func(void * pDest)
{
}
{
memcpy( pDest, (LPCTSTR)strSour), strSour.GetLength()*sizeof(TCHAR));
}
{
*(CString *)pDest = "er";
}
的好用,谢谢了