Share via


/netcf

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

/netcf

解説

/netcf オプションでは、Visual Basic コンパイラが完全な .NET Framework ではなく .NET Compact Framework を対象にします。 .NET Framework だけで使用できる言語機能は無効になります。

/netcf オプションは /sdkpath と組み合わせて使用するよう設計されています。 /netcf によって無効になる言語機能は、/sdkpath の対象となるファイルで使用できる言語機能と同じです。

注意

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

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

  • プログラムの実行を終了する End <キーワード> ステートメント (Visual Basic) キーワードが無効になります。 次のプログラムは、/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
    
  • Auto (Visual Basic)Ansi (Visual Basic)Unicode (Visual Basic) 修飾子が無効になります。 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

参照

関連項目

コンパイル コマンド ラインのサンプル (Visual Basic)

/sdkpath

その他の技術情報

Visual Basic のコマンド ライン コンパイラ