我有一个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++代码段非常有用.
COM字符串类型是BSTR.它具有非平凡的内存管理规则.幸运的是,_bstr_tC++类包装BSTR并为您提供合理的语义.所以,这_bstr_t foo = cpi->getData();是最简单的方法.
您可以将此字符串传递给handlepacket(wchar_t* data).COM字符串类型是Unicode文本,而不是8位数据.如果getData函数返回8位数据,它应该返回一个字节数组.