C#のコードをVB.NETへ変換する、VB.NETのコードをC#へ変換するここでは、C#のコードをVB.NETのコードに変換してくれるツールや、逆にVB.NETのコードをC#のコードに変換してくれるツールを紹介します。また、それ以外の言語の変換に便利なツールも紹介します。ここでは無料で使用できるものだけを紹介します。 Convert C# to VB.NET, Convert VB.NET to C# - Developer Fusion「Convert C# to VB.NET」と「Convert VB.NET to C#」は、Developer Fusionで提供されているサービスです。Web上で変換できます。 テキストボックスにコードを入力し、その下にある「Convert to VB.NET(または、C#)」ボタンをクリックすると、コードが変換されます。 .NET Framework 2.0まで対応しているようですが、3.0以上はまだのようです。 精度はよく、お勧めです。 ちなみに、SharpDevelopを基に作成されているということです。 C# to VB.NET Translator - AspAlliance「C# to VB.NET Translator」もWeb上で提供されているサービスで、C#からVB.NETへの変換に対応しています。このページのテキストボックス(「Paste C# code below:」と書かれている下)にC#のコードを入力し、「Translate」ボタンをクリックすると、VB.NETのコードに変換されます。 .NET Framework 2.0以上には対応していませんが、1.1以下であれば、かなり役に立ちます。 「C# to VB.NET Translator」を使用するに当たり、注意すべき点を幾つか紹介します。
Convert C# to VB .NET - Kamal PatelC#からVB.NETへコード変換するツールとしてかつて有名だったのが、「Convert C# to VB .NET」です。Web上での変換以外に、「Convert C# TO VB .NET OFFLINE」という実行ファイル形式のツールもあり、とても便利です。さらにこの「Convert C# TO VB .NET OFFLINE」はソースが付いているため、改造も出来ます。 「Convert C# to VB .NET」は、他のツールと比べ、正しく変換できないケースが非常に多いです。また、";"の前で改行されている(文の途中で改行されている)コードではエラーが発生することが多いようです。たとえ、エラーが発生しなくても、文の途中で改行されているコードは正しく変換されないことが非常に多いため、「Convert C# to VB .NET」を使用する際は文の途中で改行していないコードを入力することをお勧めします。 「Convert C# TO VB .NET OFFLINE」で日本語(Shift JIS)を正しく表示できるようにする方法を紹介しておきます。ソースコードのForm1のtxtCSharpとtxtVBのFontを日本語フォントに変更し、FileToStrメソッド内の StreamReader oReader = System.IO.File.OpenText(cFileName); を StreamReader oReader = new StreamReader(cFileName, System.Text.Encoding.GetEncoding(932)); と変更すれば、大丈夫みたいです。 SharpDevelopオープンソース(GPL)の.NET開発環境であるSharpDevelopを使ってC#とVB.NETのコード変換を行うこともできます。 C#からVB.NETへの変換は、Ver.0.96から付いた「C# to VB.NET converter」という機能で可能です。VB.NETからC#への変換は、#develop Fidalgo Beta 1から付いた「VB.NET to C# converter」でできます。 さらに、C#とVB.NETからBooへの変換も可能です。ちなみにBooとは、pythonに似た言語で、こちらで紹介されています。 メニューの[Tool]-[Convert buffer C# to VB.NET](日本語では、[ソースをC#からVB.NETに変換])や[Convert buffer VB.NET to C#]などを選ぶと、変換できます。 SharpDevelop2では、.NET Framework 2.0に対応しています。 その他これ以外のツールを以下に紹介します。私自身あまり使っていませんので、詳しいことは書けません。
逆アセンブラを使用したコード変換このようなツールを使わずに、コードを変換する奥の手を紹介しましょう。それは、MSILのDisassembler(逆アセンブラ)を使う方法です。 Reflector for .NETDisassemblerは.NET Framework SDKにも「MSIL Disassembler」(Ildasm.exe)というのが付いておりそこそこ使えますが、C#やVB.NETのコードを得ることが目的であれば、「Reflector for .NET」というツールがお勧めです。使い方としては、変換基のコードをビルドし、できたファイル(exeやdll)をReflector for .NETで開き、メニューの[Tool]-[Disassembler]を選択します。これで左側のツリーで選択したメソッドのコードが右側に表示されるようになります。 表示するコードの言語を変更は、ツールバーのコンボボックスでできます(または、メニューの[View]-[Options]で「Options」ダイアログを表示し、「Language」を変更します)。指定できる言語は、IL、C#、Visual Basic(VB.NET)、Delph、MC++、Chromeです。 Anakrino「Anakrino」もReflector for .NETと同じようなツールです。さらに、同梱されているExemplar.exeを使うと、EXEやDLLの内容を、いっぺんにC#のコードへ変換することができます。ただし残念なことに、日本語が表示されません(Exemplar.exeは途中で終わってしまいます)。
(この記事はメールマガジン「.NETプログラミング研究」の第11,12号で紹介したものを編集したものです。) |
|
Copyright 2002-2008 DOBON!. All rights reserved.
|