アップグレードに関する推奨事項 : ユーザー定義型における配列および固定長文字列の不使用

更新 : 2007 年 11 月

Visual Basic 2008 の配列および構造体 (以前のユーザー定義型) に他の Visual Studio 言語との完全な互換性を持たせるために加えられた変更により、固定長文字列はサポートされなくなりました。固定長文字列の代用となる互換用のクラスがあるため、ほとんどの場合は問題はありません。

Dim FixedLengthString As String * 100

このコードは次のようにアップグレードされます。

Dim FixedLengthString As New VB6.FixedLengthString(100)

ただし、構造体で固定長文字列を使用すると問題が生じます。これは、構造体の作成時に固定長文字列クラスが自動的に生成されないことが原因です。同様に、構造体の作成時に固定サイズの配列は作成されません。

コードをアップグレードすると、固定長の文字列または配列を含むユーザー定義型は構造体に変換され、コードで構造体を参照する前に固定長の文字列または配列を初期化するように指示するコメントが挿入されます。このような変更を避けるには、固定長文字列の代わりに通常の文字列を使用し、固定サイズ配列の代わりに未初期化配列を使用するように、Visual Basic 6.0 のユーザー定義型を変更します。以下に例を示します。

Private Type uType
    anArray(5) As Integer
    aFixedString As String * 100
End Type
Sub SomeFunction()
    Dim aVariable As uType
End Sub

このコードは次のように変更できます。

Private Type uType
    anArray() As Integer
    aFixedString As String
End Type
Sub SomeFunction()
    Dim aVariable As uType
    ReDim aVariable.anArray(5) As Integer
    aVariable.aFixedString = String$(100, " ")
End Sub

参照

その他の技術情報

言語に関するアップグレード上の推奨事項