私はプロジェクトを作成していて、別のパーティのDLLを使用しています。
DLLの関数は、結果を保存するためにIStreamオブジェクトを必要としていますが、IStreamオブジェクトを作成する方法を理解できません。
誰かが私の問題を手伝ってくれますか?
私はプロジェクトを作成していて、別のパーティのDLLを使用しています。
DLLの関数は、結果を保存するためにIStreamオブジェクトを必要としていますが、IStreamオブジェクトを作成する方法を理解できません。
誰かが私の問題を手伝ってくれますか?
明らかにインターフェイスであるため、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インターフェイスを実装する方法を示しています。
.NetがよりオープンソースになったMicrosoftのマネージド実装は次のとおりです。
独自のストリームクラスを実装し、IStreamインターフェイスを継承します。IStreamは単なるストリームであり、ストリームである限り(FileStreamなど)、ほとんど自分で決めたものにすることができます。
関連:リンク