2011-05-11 16 views
0

私はここにこれのさまざまな段階について投稿していますが、ここでもう一度ガイダンスを求めています。レガシーVB6アプリの交換

私たちは第三者に依存するアプリケーションを持っています。この依存関係は、COMを使用するサードパーティのためのvb6 'ラッパー' dllを介して管理されます。私たちが行うことができるように必要なもの

は、すべての参照をラッパーを再コンパイル、または変更する必要が私たちの新しいものと第3部DLLを交換していません。

私は、サードパーティのアプリケーションが公開しているインターフェイスをエミュレートするために必要なもののほとんどを書いています。また、コードでラッパーアプリケーションを開いて参照を元のサードパーティーはすべてうまく動作します。その他のコード変更は必要ありません。参照変更のみです。

これをさらに進める必要があります。私は、私たちのオリジナルのVB6ラッパーアプリをロードし、「使用のオリジナルがしたすべてのもの(ほとんどすべて)を露出された新しいC#.NETのDLLに持ってできるようにする必要があります。 ProgId、Guid、およびネームスペースを使用しているので、登録されたdllがRegDllBViewで表示されているときに、同じものが表示されるようになりました(スレッドの違いは異なります)。

dllexpでレガシーと新機能を開くと、公開されている機能は、新しい機能(DllUnregisterServer、DllRegisterServer、DllGetClassObject、DllCanUnloadNow)が公開されていない例外と同じですが、

問題は、私は私の新しいサードパーティと元ラッパーを登録するとき、私は「クラスがオートメーションをサポートしていないか、予測したインターフェースをサポートしていません 『』実行時エラー」430を得ることである

ありがたく受け取ったすべてのヘルプ!

+0

を、私はすべてを試してみました!私は複製しようとしているdllのidlにニックネームを入れて、私が置き換えているものをすべて販売しています。私はちょうど同じオートメーションエラーを取得し続けます。 私は、古いものと新しいもののdllexportは、DLLなど登録の呼び出しによって異なることがalittleが心配です。これらは挑戦的に生成されていますか? –

答えて

1

は、このを見て、それは場合に役立ちます参照してください。

Is it possible to achieve binary compatibility in .NET library?

+0

あなたの入力をありがとうが、それでも動作していません。オートメーションエラーが発生したままです。私は困惑している。新CheckWSなどの公共のチェック:私は交換する探しています、サードパーティが早い..バインドと定義されると信じて –

関連する問題