2

従来の VB6 関数の呼び出しを .NET に相当するものに変換するためのユーティリティ/ツールを探しています。

たとえば、これを変換します...

FormatCurrency(Cart.TotalAmount)
Len(Str)
UCase(Str)
UBound(PaymentsArray)

これに...

Cart.TotalAmount.ToString("c")
Str.Length
Str.ToUpper()
PaymentsArray.Length - 1

誰か知っていますか、それとも自分でロールバックする必要がありますか?

4

4 に答える 4

2

それらの機能の変換が必要ですか? vb6 関数は vb.net で問題なく動作します。

于 2010-01-09T00:47:07.877 に答える
1

コードが動作する VB.Net に既に変換されている場合、呼び出しをそのままにしておくのはどうでしょうか? ルーチンは、.NET フレームワークの完全にサポートされている部分である Microsoft.VisualBasic.dll にあり、.NETが存在する限り存続します。必要に応じて新しいコードでそれらを使用することは避けてください。

コードをまだ変換していない場合は、VB6 から VB.Net への変換の一部として、必要な変換の一部を実行できるArtinsoft の VB Upgrade Companionを購入することを選択できます。

于 2010-01-09T00:49:49.873 に答える
0

GreatMigrationsのVB6/ASP / COM分析およびリエンジニアリングツールであるgmStudioを使用すると、コンパイラによって生成されたpcodeを解釈して作成するときに、「文字列マシン」で使用される「サーフェスフォーム」を変更することでこれらを制御できます。希望する表記で。たとえば、Lenのデフォルトのサーフェスフォームは次のとおりです。

  <subcode id="Len">
     <vbn role="function" narg="1" code="Strings.Len(%1d)"/>
     <csh role="function" narg="1" code="VBNET.Strings.Len(%1d)"/>
  </subcode>

Len操作用に発行されたC#コードをカスタマイズするには、オーバーライドを適用して、カスタム変換構成を作成します。

  <subcode id="Len">
     <csh role="function" narg="1" code="%1d.Length"/>
  </subcode>

プレースホルダー%1dは、元のパラメーターをC#コードストリームに出力する場所を示します。

これは非常に単純なケースを単純化したものですが、それがアイデアです。

注:デフォルトのサーフェスフォームは、VB6の元のセマンティクスに近いものです。たとえば、引数がnullの場合、string.LengthはC#で例外をスローしますが、VBNET.Strings.Len()は0を返します。ただし、null文字列を予期しない場合は、例外が発生したときに例外をスローすると有利な場合があります。そうではありません-少なくともあなたには選択肢があります。

于 2010-12-22T02:50:50.460 に答える
0

Microsoft が提供する無料の移行ツールは、こちらから入手できます。VS2003がリリースされたときにリリースされました。

ここで入手できます: http://blogs.msdn.com/b/bethmassi/archive/2010/07/08/free-vb6-migration-tool-amp-updated-vb-developer-center.aspx

于 2012-08-29T15:52:36.490 に答える