一回も披露したことのない豆知識

質問がございます。

1.
VB6コードをアップクレードウィザードで変換すると、Upgrade_Warningメッセージがでます。
これは、VB.NETでは"パラメータのない既定プロパティはサポートしない"とあります。
これは宣言した変数を示してますが、機能しないとうことですか?
>'UPGRADE_WARNING: オブジェクトXXXXXXXX の既定プロパティを解決できませんでした。
詳細については、'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword=
"6A50421D-15FE-4896-8A1B-2EC21E9037B2"' をクリックしてください。

2.
VB6コードをアップクレードウィザードで変換して、VB.NETでコンパイルするとWarningメッセージがでますが、これは、VB.NETでサポートしないステートメントや制約があるのでしょうか?
インパクトが解りません。
>warning BC42105: 関数'XXXXXXXX'は、すべてのコードパス上では値を返しません。

3.
ファイル属性(&H1)、ファイルRWモード(&H80000000)などの指定がございますが、これらのアドレスは何ですか?
何かのレジスター情報ですか?

宜しくお願い致します。

A 回答 (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 …

Q2
その関数の作りが悪いってこと。
場合によっては値を返さないケースがあるんじゃない? という警告。
値を返さないってことは、呼び出し元に Null が返されることがあり、意図しない戻り値でエラーになるかもしれないってこと。

http://msdn.microsoft.com/ja-jp/library/87x5f80y …

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. …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A