为何VARIANT变量的值会自动被取代
为什么VARIANT变量的值会自动被取代
为什么执行到最后一句的时候vt的值被str2取代了?
求高手解释
------解决方案--------------------
这样用
CString str1(_T("111")),str2(_T("222"));
VARIANT vt;
vt.vt = VT_BSTR;
vt.bstrVal = _bstr_t(str1).Detach();
BSTR bstrTemp = _bstr_t(str2).Detach();
用完了
SysFreeString(vt.bstrVal)
SysFreeString(bstrTemp)
你上面的都是用的临时变量,执行到下一行_bstr_t就会调用析构把里面的数据释放掉
候vt的值被str2取代只是假象,是_bstr_t 两次申请到的地址是一致的
- C/C++ code
CString str1(_T("111")),str2(_T("222")); VARIANT vt; vt.vt = VT_BSTR; vt.bstrVal = _bstr_t(str1); BSTR bstrTemp = _bstr_t(str2);
为什么执行到最后一句的时候vt的值被str2取代了?
求高手解释
------解决方案--------------------
这样用
CString str1(_T("111")),str2(_T("222"));
VARIANT vt;
vt.vt = VT_BSTR;
vt.bstrVal = _bstr_t(str1).Detach();
BSTR bstrTemp = _bstr_t(str2).Detach();
用完了
SysFreeString(vt.bstrVal)
SysFreeString(bstrTemp)
你上面的都是用的临时变量,执行到下一行_bstr_t就会调用析构把里面的数据释放掉
候vt的值被str2取代只是假象,是_bstr_t 两次申请到的地址是一致的