BasicからC#への移行方法は?ツールは何を使う?2021-06-30TweetPocketこんにちは!あまみやです。今回は、VB6→C#.NETへのソース変換(Convert)対応時に使ったツールについて忘備録としてまとめています。【経緯】VB6からC#.NETに移行することになりました。一言で言うとすごく大変で、面倒臭いです。VB6使ってるの?というツッコミは聞かなかったことにします。参考リンクVB6からC#.NETへのコンバートに使ったツール諸事情によりフリーソフトをインストールしたりできないので、別のPCにインフトール済みの下記ソフトを使用して、2段階にわけてソースを変換。2005には、アップグレードウィザードがあるので、画面の内容に従ってConvertが可能。コンバートできるわけではない。サードパーティ製のツール(SpreadとかInputManとか)を参照していたりすると変換エラーのメッセージが表示されてしまう。定義ファイル(※)はコンバートしてくれない。※共通変数や定数系をまとめている標準モジュールファイル。100コンバート済みソースのエラーを修正していく手作業でソースを修正していく。エラーの量が膨大すぎたため、使用されている数が多い共通メソッドやクラスから順番に変換していく。6.0ユーザーのための移行ガイド」というPDFファイルがあるので参照しつつ、共通処理から順に変換していく。余談:R#先生のありがたみを知る・・・。不要な参照を一括で削除したり、メソッドの名前を一括で変更したりするときに重宝。コンバート時に困ったことベスト3VB6→C#.NETへ移行する際に一番困ったことを3つほどピックアップ。ついでにどうすればよかったか(どうなっていたら私が助かったか)も書いてみた。1.同じ処理がまとまっていないこれはVB6に限った話ではないけれど、たとえば文字列に対するチェックやファイルパスに対するチェックは基本的に同じことをするケースが多い。同じ処理を各ファイルで書かずにまとめておけば、そのメソッドを修正するだけで済むという話。Basicとかで補われてしまうのでこれも排除するとなるとかなり時間がかかるという・・・。2.VB6で埋め込まれた画像がリソース化されたVB6のソースでImageコントロールに指定されていた画像が、ファイルパスから読み込む形になっていなかったので、画像はファイルとして切り出されず、コンバート後は各ファイルのリソースに入ってしまった。Better共通で使う画像はファイルパスから読み込む形にしておく共通で使う画像というと、警告とかエラーとかインフォメーションとかのメッセージでよく見かけるアイコンとかが多いのでは。3.APIの置き換え地味に困ったのがAPI関連。ものは、.NETFrameworkのクラスを使えば実現できるものなので、不要になるケースが多いと思われる。独自の処理のために使っている見慣れないAPIは、PInvokeにもIF情報がなかったりして、かなり調べまくった記憶が・・・。例)同じLAN内のIPアドレスを取得して一覧にするBetterどうしようもない・・・IF情報をコメントで記載しておくくらいVB6に慣れてない人がコンバートするとこういうことになるよという情報。仕様書さえ作ってあったら1から作る方法を選んだに違いない。今回は、前例があったため、既存のソースコードをソフトを使ってコンバートする方法を実施しましたが結局この3つ以外に方法はないのでは・・・。Studioを使用するいいツールがあったら逆に知りたいくらいです。まとめC#.NETに慣れすぎて、VB6のコードにいつまでも慣れないあまみやでした。Next」とかコンバート後は使えませんからね。参考リンクその節は大変お世話になりました。先人の知恵と記録には感謝しかありません。TipsTweetPocketFacebookTwitterはてブPocketFeedlySHリサーチとは?非通知&自動音声が怪しい?対処方法は?こちらも読まれています未分類SHリサーチとは?非通知&自動音声が怪しい?対処方法は?こんにちは!あまみやです。先日、スマートフォンに非通知着信がありました。BasicからC#への移行方法は?ツールは何を使う?プロフィール運営者:あまみやシステム開発をしながら雑記ブログを書きながら夫と二人で楽しく暮らしています。