/netcf

将编译器的编译目标设置为 .NET Compact Framework。

/netcf

备注

/netcf 选项使 Visual Basic 编译器将编译目标设置为 .NET Compact Framework 而不是完整的 .NET Framework。 只存在于完整的 .NET Framework 中的语言功能将被禁用。

/netcf 选项旨在与 /sdkpath 一起使用。 /netcf 所禁用的语言功能与用 /sdkpath 导向的文件中不存在的语言功能相同。

备注

/netcf 选项不能在 Visual Studio 开发环境中使用;它仅在从命令行进行编译时可用。当加载 Visual Basic 设备项目时,将设置 /netcf 选项。

/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
    
  • 在使用 /netcf 时,如果使用已从 Visual Basic 中移除的 Visual Basic 6.0 关键字,将会生成一个不同的错误。 这将影响用于以下关键字的错误信息:

    • Open

    • Close

    • Put

    • Print

    • Write

    • Input

    • Lock

    • Unlock

    • Seek

    • Width

    • Name

    • FreeFile

    • EOF

    • Loc

    • LOF

    • Line

示例

下面的代码使用 .NET Compact Framework 编译 Myfile.vb,并使用 C 驱动器上 .NET Compact Framework 的默认安装目录中的 Mscorlib.dll 版本和 Microsoft.VisualBasic.dll 版本。 通常,应该使用最新版 .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 命令行编译器