-1

如何从 C++ 中的变体复制到字符数组。到目前为止,我已经能够想出下面的片段。但需要帮助才能使其工作。

_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));
   }
}
4

1 回答 1

0

如果 的类型parent->CharData是 char*、bstr 或 TCHAR*(或类似),那么以下应该可以工作。(虽然未经测试)

//uses the bstr_t const assignment operator to extract the string
_bstr_t bstr = vt_Data; 

这将创建字符串的新副本。

于 2012-06-27T23:36:44.343 回答