如何将返回类型字符串的数据复制到C ++?

时间:2012-03-12 09:56:10

标签: c++ string com

我有一个com对象函数,它具有C#返回类型的字符串

string getData();

在我的C ++代码中,我有

cpi->getData(); 

其中cpi是指向com对象实例的指针。

如何在C ++变量中获取此返回的数据?

--- ---编辑

我还有另一个名为handlepacket(char* data)的函数。

如何将此cpi->getData返回的字符串数据传递给此函数?

C ++代码段非常有用。

1 个答案:

答案 0 :(得分:5)

COM字符串类型为BSTR。它具有非平凡的内存管理规则。幸运的是,_bstr_t C ++类包装BSTR并为您提供合理的语义。因此,_bstr_t foo = cpi->getData();是最简单的方法。

您可以将此字符串传递给handlepacket(wchar_t* data)。 COM字符串类型是Unicode文本,而不是8位数据。如果你的getData函数返回8位数据,它应该返回一个字节数组。