我曾尝试从 C# 返回对象集合并通过 COM 使用 C++ 访问它们但失败了。我已尝试全部列出 ArrayList 和 IDictionary 但失败了。
我试过了
How to return a collection of strings from C# to C++ via COM interop也没有成功。
谁能帮帮我
最佳答案
@Partial,你提出了一个重要的观点。您不能将 .NET“对象”传回 C++(除非它是托管 C++),因为 .NET 对象语义与 C++ 对象语义不同。
@Cute:但是,您可以传递 COM 接口(interface)指针。如果您需要“传统 C++”代码与 .NET 对象对话,请使用 COM 接口(interface),而不是对象。
确保您的对象被标记为 COM 对象,并且您实现了一个合适的接口(interface),其中包含您的 C++ 所需的方法。然后,将接口(interface)引用数组传回 C++ 代码。 C++ 代码应该获得 COM 接口(interface)指针的 SafeArray,它可以使用通常的 COM 语义(AddRef() 等)对其进行操作。
关于c# - 如何从 C# 返回集合对象并在 C++ 中访问它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1054406/