如何识别程序是使用 Visual Basic 6.0 还是 VB.NET... 编写的?

How do I identify if a program is written using Visual Basic 6.0 or VB.NET...?

我不熟悉 Visual Basic 6.0 或 VB.NET。我从客户那里得到一个旧项目进行修改。所以我想确定一下代码是用Visual Basic 6.0写的还是VB.NET.

任何建议或任何主要的语法差异,以便我可以更快地找到它?

您可以检查项目文件系统结构。

如果主项目文件的扩展名为 .Vbp,则表示它是 Visual Basic 6.0 项目,否则,如果主项目文件的扩展名为 .VBProj 文件然后它是一个 VB.NET 项目。

如果您想根据代码分析来确定语言,那么有几种方法可以确定它。

您可以检查 VB.NET-only 语句,例如 Option Strict, Option Inffer 等。在 Visual Basic 6.0 中,只有 Option Explicit.

来自 .NET framework class library 的任何常用 class,例如 MessageBox(不是 MsgBox)。

仅出现在 VB.NET 中的任何 Visual Basic Language Keywords,如 ImportsHandlesInherits 等.(请注意,其他一些与 Visual Basic 6.0 共享)。

公共事件处理程序签名ByVal sender As Object, ByVal e As EventArgs

错误处理Try/Catch

Try
Catch
Finally
End Try

还有更多。参考Visual Basic .NET Language Specification.

使用:

tasklist /m

Visual Basic 6.0 将加载 MSvbvm60.dll,任何 .NET 程序都将加载 mscoree.dll

一个程序可能会同时加载两者,但如果一个程序正在使用另一个程序的功能(对于对象来说是可能的)。在这种情况下,EXE 文件开头附近的 DLL 文件列表会告诉您 - 使用记事本。