今天遇到一个_variant_t 变量不能成功转换的BUG,COM组件版本不同会对此有影响。
char szContent[]={0};
CBCGPGridRow *pRow = m_wndGrid.GetRow(nIndex);
if(pRow)
strcpy(szContent, (_bstr_t)pRow->GetItem(0)->GetValue() );
// pRow->GetItem(0)->GetValue() 返回const _variant_t & 这段代码在我机器上无任何问题。
后来发现, (_bstr_t)pRow->GetItem(0)->GetValue() 转换有问题。
改为 _variant_t var = pRow->GetItem(0)->GetValue() ;
strcpy(szContent, _com_util::ConvertBSTRToString(var.bstrVal));
OK.