-netcf

.NET Compact Framework を対象とするようにコンパイラを設定します。

構文

-netcf

Remarks

-netcf オプションを指定すると、Visual Basic コンパイラの対象は、完全な .NET Framework ではなく .NET Compact Framework となります。 完全な .NET Framework にのみ存在する言語機能は無効になります。

-netcf オプションは、-sdkpath と共に使用するように設計されています。 -netcf によって無効にされた言語機能は、-sdkpath の対象となるファイルには存在しないものと同じ言語機能です。

Note

-netcf オプションは、Visual Studio 開発環境からは利用できません。これはコマンド ラインからコンパイルするときにのみ使用できます。 -netcf オプションは、Visual Basic デバイス プロジェクトが読み込まれるときに設定されます。

-netcf オプションでは、次の言語機能を変更します。

  • プログラムの実行を終了する、End <keyword> ステートメントのキーワードは無効になります。 次のプログラムは -netcf なしでコンパイルされ、実行されますが、-netcf を指定するとコンパイル時に失敗します。

    Module Module1
        Sub Main()
            End   ' not valid to terminate execution with /netcf
        End Sub
    End Module
    
  • すべての形式の遅延バインディングが無効になります。 コンパイル時のエラーは、認識された遅延バインディングのシナリオが検出された場合に生成されます。 次のプログラムは -netcf なしでコンパイルされ、実行されますが、-netcf を指定するとコンパイル時に失敗します。

    Class LateBoundClass
        Sub S1()
        End Sub
    
        Default Property P1(ByVal s As String) As Integer
            Get
            End Get
            Set(ByVal Value As Integer)
            End Set
        End Property
    End Class
    
    Module Module1
        Sub Main()
            Dim o1 As Object
            Dim o2 As Object
            Dim o3 As Object
            Dim IntArr(3) As Integer
    
            o1 = New LateBoundClass
            o2 = 1
            o3 = IntArr
    
            ' Late-bound calls
            o1.S1()
            o1.P1("member") = 1
    
            ' Dictionary member access
            o1!member = 1
    
            ' Late-bound overload resolution
            LateBoundSub(o2)
    
            ' Late-bound array
            o3(1) = 1
        End Sub
    
        Sub LateBoundSub(ByVal n As Integer)
        End Sub
    
        Sub LateBoundSub(ByVal s As String)
        End Sub
    End Module
    
  • AutoAnsi、および Unicode 修飾子は無効になります。 Declare ステートメントの構文も Declare Sub|Function name Lib "library" [Alias "alias"] [([arglist])] に変更されます。 次のコードは、コンパイル時の -netcf の効果を示しています。

    ' compile with: /target:library
    Module Module1
        ' valid with or without /netcf
        Declare Sub DllSub Lib "SomeLib.dll" ()
    
        ' not valid with /netcf
        Declare Auto Sub DllSub1 Lib "SomeLib.dll" ()
        Declare Ansi Sub DllSub2 Lib "SomeLib.dll" ()
        Declare Unicode Sub DllSub3 Lib "SomeLib.dll" ()
    End Module
    
  • Visual Basic から削除された Visual Basic 6.0 キーワードを使用すると、-netcf の使用時に別のエラーが生成されます。 これは、次のキーワードのエラー メッセージに影響します。

    • Open

    • Close

    • Put

    • Print

    • Write

    • Input

    • Lock

    • Unlock

    • Seek

    • Width

    • Name

    • FreeFile

    • EOF

    • Loc

    • LOF

    • Line

次のコードでは、C ドライブ上の .NET Compact Framework の既定のインストール ディレクトリにある mscorlib.dll と Microsoft.VisualBasic.dll のバージョンを使用して、.NET Compact Framework で Myfile.vb をコンパイルします。 通常は、最新バージョンの .NET Compact Framework を使用します。

vbc -netcf -sdkpath:"c:\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE " myfile.vb

関連項目