give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

VB6 => VB.NETコンバート

ちょっと仕事でVB6のコードを解析しなきゃいけなくなったのですが、Visual Basicの開発環境はさすがに手元にない。
しかしテキストエディタだけで追いかけるのも大変すぎる。
そこで「よし、.NETにコンバートしてVisual Studioで見よう!」と思いました。


ネットを探したら下のようなページがあったので、それを参考にしながらコンバートを実行しました。


http://www.atmarkit.co.jp/fdotnet/special/vb6tovb2005mig03/vb6tovb2005mig03_02.html


何回か「OCXが見つからない」というエラーメッセージが出たのでネットからダウンロードして、レジストリ登録して、ようやくコンバート完了。
しかし、コンバート結果には100を越えるコンパイルエラーと7000を超える警告メッセージが・・・。


今回はコードの解析だけが目的だったので、これでもまあOKだったのですが、これが本当にプログラムをコンバートしたいと思って使っていたら、使い物にならないですね。


前の会社でもVBで構築されたクライアントサーバーシステムを.NETにコンバートするというプロジェクトがあって、ほんのちょっとだけ参加したのですが、まあひどいもんでした。
幸いすぐに別のプロジェクトにアサインされましたが、もしあのまま最後まで付き合っていたら・・・ぞぞぞぞ。


基本的にVB6とVB.NETは言語仕様やコントロール群が全く別物なので、すぐに自動コンバートの限界にぶち当たっちゃうんですよね。
で、エラーや警告のメッセージが大量に表示されちゃう。


数千のエラーメッセージを確認しながら一つずつ修正していくのと、仕様だけ確認してフルスクラッチで書き直すのとではどっちが効率的なのでしょうか?
コンバートが成功している箇所に関しても正しくコンバートできている保証はないので、テストは必要。
もし問題があったら、自分でコンバートしたわけじゃないからきっと原因が分からなくて泥沼に陥るかも?


というわけでVB6の自動コンバートはなぐさめ程度にしか使えないのでは?というのがおいらの感想です。