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

1 c++ string com

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

string getData();
Run Code Online (Sandbox Code Playgroud)

在我的C++代码中

cpi->getData(); 
Run Code Online (Sandbox Code Playgroud)

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

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

- -编辑 - -

我还有另一个叫做的函数handlepacket(char* data).

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

C++代码段非常有用.

MSa*_*ers 5

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

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