Share via


-netcf

.NET Compact Framework를 대상으로 하는 컴파일러를 설정합니다.

구문

-netcf

설명

-netcf 옵션을 설정하면 Visual Basic 컴파일러가 전체 .NET Framework가 아닌 .NET Compact Framework를 대상으로 합니다. 전체 .NET Framework에만 표시되는 언어 기능은 사용할 수 없습니다.

-netcf 옵션은 -sdkpath와 함께 사용하도록 설계되었습니다. -netcf에 의해 비활성화된 언어 기능은 -sdkpath를 사용하여 대상으로 지정된 파일에 없는 언어 기능과 동일합니다.

참고 항목

Visual Studio 개발 환경 내에서는 -netcf 옵션을 사용할 수 없습니다. 명령줄에서 컴파일하는 경우에만 사용할 수 있습니다. -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
    
  • Auto, AnsiUnicode 한정자는 사용할 수 없습니다. Declare Statement의 구문도 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

참고 항목