如何从c ++中的variant复制到字符数组。到目前为止,我已经能够提出下面的代码段。但需要帮助才能使其发挥作用。
_variant_t vt_Data(parent->CharData);
if(vt_Data.vt != VT_NULL)
{
long ubound;
long lbound;
long length;
TSTHR(SafeArrayGetLBound(vt_Data.parray, 1, &lbound));
TSTHR(SafeArrayGetUBound(vt_Data.parray, 1, &ubound));
if(length = ubound - lbound +1)
{
char *char_data = new char[length];
TSTHR(SafeArrayAccessData(vt_Data.parray, (void **) &char_data))
memcpy(char_data, vt_Data.parray, length);
TSTHR(SafeArrayUnaccessData(vt_Data.parray));
}
}
答案 0 :(得分:0)
如果parent->CharData
的类型是char *,bstr或TCHAR *(或类似),则以下内容应该有效。 (虽然未经测试)
//uses the bstr_t const assignment operator to extract the string
_bstr_t bstr = vt_Data;
这将创建字符串的新副本。