まずはOCXを使ってなさそうな小さなアプリケーションから試してみます。今回は無事変換完了。
Visual Studio上では11個のエラーと7個の警告。まずまずの数字です。
出力先に、アップグレードレポートファイルが生成されていたのでこちらも確認。こちらでは、コンパイルエラーが11個、デザインエラーが118個、警告が82個。
両方ともエラーが11個で一致しているように見えますが、詳細を見るとエラー内容が異なります。
Visual Studio上のエラーは、大別すると次の通り。
- AxMSRDCのメンバーではない
- System.Windows.Forms.Labelのメンバーではない
- Meを代入式のターゲットにすることはできない
- LenB/MidBは宣言されていない
- vbFromUnicodeは宣言されていない
他方、 アップグレードレポートファイル上のエラーは、大別すると次の3パターン。
- 一部の定数はアップグレードされませんでした(vbFromUnicode)
- 一部の関数がサポートされていません(LenB/MidB)
- マウスのカーソルをカスタムポインターに設定できません
とりあえずコンパイルできるようにするには Visual Studio上のエラーを潰す必要がありますが、アップグレードレポートファイルの方が本当に修正していくには参照するのに都合がよさそうです。
まずは両方に共通しているLenB/MidBについて調査。
VB6のLenBと同じ事を行うには?
文字列の一部をバイト単位で取り出す (LeftB, MidB, RightB)
VB.NET LeftBの代用
いろいろと皆さんの対処方法があるようです。とりあえず、このあたりは共通クラスを作ってその中に入れるようにします。
続いて、共通しているvbFromUnicodeです。
こちらも共通関数化してしまいます。
Equalivent of VB6's vbUnicode in NET?
[RESOLVED] [2003]vbFromUnicode Equivalent
後は、Set Me = Nothingについてですが、これはとりあえずコメントアウトすることに。
'Set Object = Nothing'... do you still do this in VB.net????
Question : Do you still use 'Set Object = Nothing' in VB.NET?
今日のところはここまで。
0 件のコメント:
コメントを投稿