是否可以在COM对象之间传递char*

我需要修改在 Delphi 和 C++ 上编写并使用 COM 的应用程序。而且我经常看到 COM 包装器总是使用 WideString 和 BSTR,即使最终使用的 dll 与普通的 char* 一起使用。那么没有unicode字符串就不可能在COM对象之间进行通信吗?非常感谢用于进一步阅读该主题的一些链接。

回答

char在 COM 中传递 8 位字符串,您可以:

  • 用于SysAllocStringByteLen()创建一个按原样BSTR保存原始char字符的二进制文件。然后接收者可以charBSTR.

  • 使用SafeArrayCreate()/SafeArrayCreateVector()创建一个SAFEARRAY保持VT_UI8元素,然后您可以将char字符按原样复制到数组中。如果需要,您可以将SAFEARRAYa放在里面VARIANT

  • char字符包裹在内IStream,例如 fromCreateStreamOnHGlobal()SHCreateMemStream()


以上是是否可以在COM对象之间传递char*的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>