/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 <关键字> 语句 (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
在使用 /netcf 时,如果使用已从 Visual Basic 中移除的 Visual Basic 6.0 关键字,将会生成一个不同的错误。 这将影响用于以下关键字的错误信息:
Open
Close
Put
Print
Write
Input
Lock
Unlock
Seek
Width
Name
FreeFile
EOF
Loc
LOF
Line
示例
下面的代码使用 .NET Compact Framework 编译 Myfile.vb,并使用 C 驱动器上 .NET Compact Framework 的默认安装目录中的 Mscorlib.dll 版本和 Microsoft.VisualBasic.dll 版本。 通常,应该使用最新版 .NET Compact Framework。
vbc /netcf /sdkpath:"c:\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE " myfile.vb