다음을 통해 공유


/netcf

컴파일러 대상을 .NET Compact Framework로 설정합니다.

/netcf

설명

/netcf 옵션을 사용하면 Visual Basic 컴파일러의 대상이 전체 .NET Framework가 아니라 .NET Compact Framework가 됩니다. 이때 전체 .NET Framework에서만 제공되는 언어 기능은 사용할 수 없습니다.

/netcf 옵션은 /sdkpath와 함께 사용할 수 있습니다. /netcf를 지정할 때 사용할 수 없는 언어 기능은 /sdkpath의 대상 파일에서 제공되지 않는 언어 기능과 같습니다.

참고

/netcf 옵션은 Visual Studio 개발 환경에서는 사용할 수 없고 명령줄에서 컴파일하는 경우에만 사용할 수 있습니다./netcf 옵션은 Visual Basic 장치 프로젝트가 로드되는 경우 설정됩니다.

/netcf 옵션을 사용하면 다음과 같은 언어 기능이 변경됩니다.

  • 프로그램 실행을 종료하는 End <keyword> 문(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
    
  • 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

참고 항목

참조

샘플 컴파일 명령줄(Visual Basic)

/sdkpath

기타 리소스

Visual Basic 명령줄 컴파일러