2011-07-06 13 views
1

私は何年も前に開発されたVB6アプリケーションの機能を複製して強化するために設計されたC#アプリケーションを構築しています。 私の問題は、古いアプリケーションの1つのモジュールが本当に複雑なものをいくつか行い、これを複製しようとするとスペックから始まることが私にとって大きな苦痛になることです。これがベストアイデアのように聞こえても。レガシーコードVisual Basic for C#

私の質問は:私は古いVBモジュールを保持し、それをC#アプリケーションに統合する方法があるので、すべてを書き直す必要はありませんか?

ありがとうございます!

+0

古いVBモジュールはDLLの一部ですか(そうでない場合は、DLLに分離してコンパイルできますか)。 –

答えて

3

はい。モジュールをCOMオブジェクトに変換すると、.NetはうれしいことにCOMオブジェクトを呼び出します。あなたが現在持っているものによっては、Visual Studio 6のコピーを見つけてそれを実現する必要があるかもしれません(サブスクリプションを持っていればMSDNでも利用可能です)。より正確な指示を与えるために、より多くのコードを表示する必要があります。

0

COMを使用するか、モジュールをDLLとしてエクスポートできます。 VB6 and COMに関するいくつかの情報があります。

0

はい、それをcomモジュールに変換し、それをあなたのC#コードから呼び出します。これが簡単かどうかは分かりません。

問題はこの問題が解決されず、モジュールまたはインターフェイスに変更が必要な場合、誰かがそれを行う必要があるということです。実用的なはい、しかしあなたがしていることを慎重に検討してください。

0

既存のvbコードをvb.netに移行し、別のアセンブリとしてコンパイルしてC#アプリケーションに追加できます。

3

Visual Studioには、VB6をVB.NETに変換するウィザードがあります。このウィザードを使用して、C#プロジェクトで参照して使用することができます。しかし、この移行ツールはVisual Studio 2010には同梱されていません(以前のバージョンでは出荷されていました)。しかし、一般的に手作業によるタッチアップが必要な場合もありますが、とにかく、高品質のコード。あなたのお勧めは、コードを書き直すことです。タッチアップを作成し、COM/Interopのルートに行かなくても正しく動作することを確認できますが、必ずしもそのオプションを避ける必要はありません。すべてのコードを書き直すのが本当に問題であれば、interopは解決策です。

0

VS2010(多分2008年版)は、VBとC#の両方のプロジェクトを同じソリューションでサポートできませんか?私が間違っていなければ、彼らはすることができます。実際にはVB6のコードをVB.Netに変換し、C#のものを使ってあなたのソリューションにプロジェクトを持たせることができます。