3

我正在编写一个项目并使用另一方 DLL。

他们的 DLL 中的函数想要一个 IStream 对象来保存结果,但我不明白如何创建一个 IStream 对象。

谁能帮我解决我的问题?

4

3 回答 3

5

您不创建 IStream 对象,因为显然它是一个接口。您应该实现此接口并传递您的对象。或者简单地使用一个已经实现它的对象,如果这样的对象存在的话。

已经给出了类似问题的答案给出了一个很好的例子,如何在 C# 中使用 IStream 接口。

COM 互操作 IStream 的包装类是否已经存在?

更正: 但是,这仅在您需要在应用程序中使用现有 IStream 时才有效,而不是当您需要在其他地方创建和传递 IStream 时。对于该任务,请参阅this for refence 如何执行此操作:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa380034(v=vs.85).aspx

这是 Microsoft 的一个示例(用于 XmlLite,不确定它是否适合您)

http://msdn.microsoft.com/en-us/library/windows/desktop/ms752876(v=vs.85).aspx

或者这个例子,已经由 Marcus 发布:http: //hl7connect.blogspot.sk/2010/04/c-implementation-of-istream.html

最后一个链接显示了如何使用任何 Stream 来实现 IStream 接口。

于 2012-10-16T07:49:27.480 回答
3

由于 .Net 更加开源,因此这是来自 Microsoft 的托管实现:

https://referencesource.microsoft.com/#PresentationFramework/src/Framework/MS/Internal/IO/Packaging/managedIStream.cs

于 2015-01-14T11:05:04.030 回答
0

实现自己的流类并继承 IStream 接口。IStream 只是一个流,只要它是一个流(例如 FileStream 等),几乎可以是您决定的。

相关:链接

于 2012-10-16T07:53:49.833 回答