3

私はプロジェクトを作成していて、別のパーティのDLLを使用しています。

DLLの関数は、結果を保存するためにIStreamオブジェクトを必要としていますが、IStreamオブジェクトを作成する方法を理解できません。

誰かが私の問題を手伝ってくれますか?

4

3 に答える 3

5

明らかにインターフェイスであるため、IStreamオブジェクトは作成しません。むしろ、このインターフェースを実装してオブジェクトを渡す必要があります。または、そのようなオブジェクトが存在する場合は、すでにそれを実装しているオブジェクトを使用するだけです。

同様の質問に対する回答はすでに提供されており、C#でIStreamインターフェイスを使用する方法の良い例を示しています。

COM相互運用機能IStreamのラッパークラスはすでに存在しますか?

修正: ただし、これは、アプリ内で既存の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

または、マーカスによってすでに投稿されているこの例: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 に答える