我有一个com对象函数,它具有C#返回类型的字符串
string getData();
在我的C ++代码中,我有
cpi->getData();
其中cpi是指向com对象实例的指针。
如何在C ++变量中获取此返回的数据?
--- ---编辑
我还有另一个名为handlepacket(char* data)
的函数。
如何将此cpi->getData
返回的字符串数据传递给此函数?
C ++代码段非常有用。
答案 0 :(得分:5)
COM字符串类型为BSTR
。它具有非平凡的内存管理规则。幸运的是,_bstr_t
C ++类包装BSTR
并为您提供合理的语义。因此,_bstr_t foo = cpi->getData();
是最简单的方法。
您可以将此字符串传递给handlepacket(wchar_t* data)
。 COM字符串类型是Unicode文本,而不是8位数据。如果你的getData
函数返回8位数据,它应该返回一个字节数组。