Поделиться через


-netcf

Задает компилятору целевой платформы .NET Compact Framework.

Синтаксис

-netcf

Замечания

Этот -netcf параметр приводит к тому, что компилятор Visual Basic предназначен для .NET Compact Framework, а не для полной платформы .NET Framework. Функции языка, которые присутствуют только в полной платформе .NET Framework, отключены.

Этот -netcf параметр предназначен для использования с -sdkpath. Функции языка, отключенные -netcf теми же функциями языка, которые не присутствуют в файлах, предназначенных для -sdkpath.

Замечание

Этот -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
    
  • Модификаторы Авто, Ansi и Юникод отключены. Синтаксис инструкции 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 6.0, которые были удалены из Visual Basic, возникает другая ошибка при -netcf использовании. Это влияет на сообщения об ошибках для следующих ключевых слов:

    • Open

    • Close

    • Put

    • Print

    • Write

    • Input

    • Lock

    • Unlock

    • Seek

    • Width

    • Name

    • FreeFile

    • EOF

    • Loc

    • LOF

    • Line

Пример

Следующий код компилируется Myfile.vb с помощью .NET Compact Framework, используя версии mscorlib.dll и Microsoft.VisualBasic.dll, найденные в каталоге установки .NET Compact Framework на диске C. Как правило, используется последняя версия .NET Compact Framework.

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

См. также