-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 <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
    
  • 在使用 -netcf 时,使用从 Visual Basic 中删除的 Visual Basic 6.0 关键字会产生不同的错误。 这会影响以下关键字的错误消息:

    • 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

请参阅