_variant_t 转换为CString时,在结束程序时,总是报内存泄露 网上的很多转换方法都试了,但为什么总是报内存泄露,有没有哪位朋友知道是怎么回事,如何不让其内存泄露? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CString CXMLMyLib::FromVARIANT( const _variant_t& varText ){ CString csText; if ( varText.vt == VT_BSTR ) csText = FromBSTR( varText.bstrVal ); return csText;}CString CXMLMyLib::FromBSTR( const _bstr_t& bstrText ){#ifdef _UNICODE CString csText( (LPCWSTR)bstrText );#else USES_CONVERSION; CString csText( W2A(bstrText) );#endif return csText;}我在用,无内存泄露 你的CString不会是new 出来的吧?? 一下的两种:(1)(TCHAR*)(_bstr_t)varSBBH(2)_bstr_t bstr_t; bstr_t=variant_t; //strTemp.Format("%s",(const char *)bstr_t); const char* str; str=(const char*)bstr_t; str为CString 有,我是使用Visual Leak Detector v1.9测试的,难道是用的有问题 LZ看看下面的方法行不行: _variant_t vtTmp; ......//通过GetCollect函数获取查询结果中的某个字段的值,放到vtTmp中 CString strName; strName = (LPCTSTR)(_bstr_t)vtTmp; 用OpenRecordset函数打开一个记录集后赋给记录集智能指针_RecordsetPtr rs,在操作完后应该调用close方法将记录集关闭:rs->Close(); 不同对话框下的文本框显示控制问题??? VC换行符是/r/n 请问下易语言的字符(9)是VC的什么啊 ATL 获取dll本身所处目录 菜鸟问题:如何将一段十六进制数据,直接放到内存中去? 如何用程序启用网络设置里面的Microsoft网络客户端 关于画图的问题!(在线等) 简单的问题 ***********就没有人精通属性页吗???********** 有关CAsyncSocket的send向各位请教。。。很急 如何建立ODBC数据源,请各位大侠帮帮忙。 读取与写入的操作,急急急急急急急急急急急急急 如何保存为bmp图片
CString CXMLMyLib::FromVARIANT( const _variant_t& varText )
{
CString csText;
if ( varText.vt == VT_BSTR )
csText = FromBSTR( varText.bstrVal );
return csText;
}CString CXMLMyLib::FromBSTR( const _bstr_t& bstrText )
{
#ifdef _UNICODE
CString csText( (LPCWSTR)bstrText );
#else
USES_CONVERSION;
CString csText( W2A(bstrText) );
#endif
return csText;
}
我在用,无内存泄露
(2)
_bstr_t bstr_t;
bstr_t=variant_t;
//strTemp.Format("%s",(const char *)bstr_t);
const char* str;
str=(const char*)bstr_t;
str为CString
......//通过GetCollect函数获取查询结果中的某个字段的值,放到vtTmp中
CString strName;
strName = (LPCTSTR)(_bstr_t)vtTmp;
rs->Close();