次の方法で共有


-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 <keyword> Statement キーワードは無効です。 次のプログラムは、 -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
    
  • AutoAnsiUnicode 修飾子は無効です。 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

こちらも参照ください