2012-02-17 8 views
1

私はC++で書かれたCOMオブジェクトをC#で使用します。私はちょうど "新しい"を介してインスタンスを作成します。私はそのようなオブジェクトがたくさん必要です。しかし、他のすべての "新しい"は新しいインスタンスを作成しませんが、最初のオブジェクトの参照のみを提供します。それで私はなぜデータが混乱しているのですか?毎回新しいインスタンスを取得することは可能ですか?それとも、IClassFactoryをCOMで実現して、シングルトンではなくインスタンス化する必要がありますか? 私はATLをサポートするVC 2010でマスターとCOMを作った。私はIClassFactoryをどこでどのように実現するのかに問題があります。マルチインスタンスCOMオブジェクト

+0

あなたは特別な何もしないデフォルトの動作は次のとおりです。次の三つの記事は、あなたが後にあるほとんどすべてをカバーする必要がありますクラスファクトリーと一緒に。あなたのC++はどういうわけか壊れています。「正しく動作しません」という質問だけで間違ったことを推測するのは難しいです。 –

+0

私は古いC++のDLLからCOMを作りました。 COMの異なるインスタンスのメソッドを呼び出すことによってデータが常に変更されるグローバルオブジェクトがあります。 COMのインスタンスがグローバルオブジェクトを共有する可能性はありますか? – plax

答えて

1

IUnknown,IClassFactoryを実装する必要があります。あなたが何をやっているかによって、IDispatchIErrorInfoを実装することもできます。それはかなり関わっているので、私はここで詳細には触れません。新しい一意のオブジェクトを取得

  1. Step by Step COM Tutorial
  2. Understanding Classic COM Interoperability With .NET Applications
  3. Fundamentals of ATL COM Objects
+0

ありがとう!私はもう一つ調整があります。私は古いC++のDLLからCOMを作りました。 COMの異なるインスタンスのメソッドを呼び出すことによってデータが常に変更されるグローバルオブジェクトがあります。 COMのインスタンスがグローバルオブジェクトを共有する可能性はありますか? – plax

+0

@plaxこのコメントは別の質問にする必要がありますが、私の頭の上から共有メモリを使って調べることをお勧めします。名前付き共有メモリの作成を参照してください。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa366551(v=vs.85).aspx – JamieSee

関連する問題