C# 在C中创建IStream对象#

C# 在C中创建IStream对象#,c#,com,com-interop,C#,Com,Com Interop,我正在写一个项目,和另一方合作 DLL中的函数需要一个IStream对象来保存结果,但我不知道如何创建IStream对象 有人能帮我解决这个问题吗?您没有创建IStream对象,因为它显然是一个接口。您应该实现这个接口并传递您的对象。或者简单地使用已经实现它的对象(如果该对象存在的话) 已经给出的一个类似问题的答案给出了一个在C#中如何使用IStream接口的好例子 更正: 然而,只有当你需要在你的应用程序中使用已有的IStream时,这才有效,而不是当你需要在别处创建和传递IStream时。

我正在写一个项目,和另一方合作

DLL中的函数需要一个IStream对象来保存结果,但我不知道如何创建IStream对象


有人能帮我解决这个问题吗?

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

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

更正: 然而,只有当你需要在你的应用程序中使用已有的IStream时,这才有效,而不是当你需要在别处创建和传递IStream时。对于该任务,请参见以下参考,了解如何执行该任务:

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

或者这个例子,已经由Marcus发布:


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

我假设IStream是一个接口。不能直接从接口创建实例,而是创建实现该接口的对象的实例(或创建自己的实现IStream的对象)。

。IStream只是一个流,只要它是一个流(例如FileStream等),它就可以是您决定的流


相关:

以下是Microsoft的托管实现,因为.Net的源代码更加开放:


i流接口请访问以下链接。System.Runtime.InteropServices.ComTypes.IStream?那么我可以创建一个MemoryStream对象并将其发送给函数吗?@IgorRyzhov,MemoryStream不实现IStream,而是流。那不行。您可以使用任何对象,但它需要实现与函数中指定的完全相同的接口。@walther,我知道了,谢谢。但是有没有任何C#内置类,在实现中是流的,还是我应该自己写?@IgorRyzhov,看这里:。@walther,我读过,但它实现的是流,不是流?