- ベストアンサー
VB6コードからVB.NETへのアップグレードにおける注意点とは?
- VB6コードをアップクレードウィザードで変換すると、Upgrade_Warningメッセージが表示されます。これは、VB.NETではパラメータのない既定プロパティをサポートしないため、宣言された変数が機能しないことを示しています。
- VB6コードをアップクレードウィザードで変換して、VB.NETでコンパイルするとWarningメッセージが表示される場合、VB.NETでサポートされないステートメントや制約がある可能性があります。これにより、関数がすべてのコードパスで値を返さないという警告が表示されることがあります。
- 指定されたファイル属性やファイルRWモードは、ファイルのアクセスや操作に関する情報です。これらの値はレジスター情報ではなく、ファイルの属性やモードを示しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Q1 VB 6.0 のコードの書き方が悪い。(というか禁止されてなかったけれど) 既定のプロパティを省略して作ってあるため、アップグレード ウィザードがそれを明示的なプロパティ名に変換できなかったってこと。 たとえば Textbox の既定のプロパティ Text プロパティを省略して MsgBox Form1.Textbox1 と書いても許されていたが MsgBox Form1.Textbox1.Text って書いてないので変換できないとか。 特に遅延バインディングしてるオブジェクトの既定のプロパティを省略してる場合は最悪。 たとえば VB 6.0 のアプリから Excel を CreateObject してて MsgBox hogeSheet.Cells(i, j) とか。 MsgBox hogeSheet.Cells(i, j).Value って書いてないとアウトかと。 http://msdn.microsoft.com/ja-jp/library/2yxx3hed(VS.90).aspx Q2 その関数の作りが悪いってこと。 場合によっては値を返さないケースがあるんじゃない? という警告。 値を返さないってことは、呼び出し元に Null が返されることがあり、意図しない戻り値でエラーになるかもしれないってこと。 http://msdn.microsoft.com/ja-jp/library/87x5f80y(v=vs.80).aspx Q3 どこの場面での話なのか分かりません。 質問の流れで言うとコンパイラが吐き出した警告ですか? 内容としてはファイルに対する操作での定数なんじゃないですかね。 質問するまでもなく検索ですぐに出てきますけどね。 VB 6.0 のコードをアップグレードする意味って知ってますか? .NET に変換して再度コンパイルして配布して、昔から使ってる業務アプリをそのまま最新 OS で継続利用できますよ。って意味じゃないです。 ただ単純に、最新の Visual Studio で開くことができるようになるから、.NET 対応でゼロから書き直すための参考にしてね。って意味です。 http://www.microsoft.com/japan/msdn/vstudio/vbrun/ http://msdn.microsoft.com/ja-jp/vbasic/cc707263.aspx