我正在编写一个项目并与另一方DLL合作。
他们的DLL函数想要一个IStream对象来保存结果,但我无法理解如何创建一个IStream对象。
任何人都可以帮我解决问题吗?
答案 0 :(得分:5)
您不创建IStream对象,因为它显然是一个接口。您应该实现此接口并传递您的对象。或者只是使用已经实现它的对象,如果存在这样的对象。
已经给出了类似问题的答案,给出了如何在C#中使用IStream接口的一个很好的例子。
Does a wrapper class for a COM interop IStream already exist?
<强>校正:强> 但是,只有当您需要在应用程序中使用现有的IStream时才能使用它,而不是在需要在其他地方创建和传递IStream时。对于该任务,请参阅此内容以了解如何执行此操作:
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接口。
答案 1 :(得分:3)
以下是Microsoft的托管实现,现在.Net更加开源:
答案 2 :(得分:0)
IStream我假设是一个接口。您不能直接从接口创建实例,而是创建实现该接口的对象的实例(或创建自己的实现IStream的对象)。
答案 3 :(得分:0)
Implement your own stream class and inherit the IStream interface。 IStream只是一个流,只要它是一个流(例如FileStream等),就可以完全按照你的决定。
相关:link