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


/netcf

Обновлен: Ноябрь 2007

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

/netcf

Заметки

Параметр /netcf указывает компилятору Visual Basic выбрать .NET Compact Framework вместо полного .NET Framework. Функциональность языка, имеющаяся только в полном .NET Framework, не поддерживается.

/netcf параметр был разработан, чтобы использоваться с /sdkpath. Языковые возможности, отключенные с помощью /netcf, совпадают с языковыми возможностями, отсутствующими в файлах при задании /sdkpath.

s7wb4kfs.alert_note(ru-ru,VS.90).gifПримечание.

Параметр /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
    
  • Модификаторы AutoAnsi и Юникод (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 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 на диске С. Как правило следует использовать самую последнюю версию .NET Compact Framework.

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

См. также

Ссылки

Примеры командных строк компиляции

/sdkpath

Другие ресурсы

Компилятор Visual Basic