且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

反编译DLL - 线索,以帮助判断是否是C#或VB.NET?

更新时间:2022-11-08 21:02:53

您可以找一个参照 Microsoft.VisualBasic程序库。如果是present,这是非常可能的是code是用VB做。图书馆有时也包括在C#项目还可以,但不是很常见。如果引用不存在,它肯定不是VB。

You can look for a reference to the Microsoft.VisualBasic library. If that is present, it's very probable that the code was made using VB. The library is sometimes included in C# projects also, but that is not very common. If the reference is not there, it's certainly not VB.

(嗯,这是的可能的编译VB不使用命令行编​​译器和特殊的编译器开关的库,但是这是非常罕见的。)

(Well, it's possible to compile VB without the library using the command line compiler and special compiler switches, but that is extremely rare.)

您也可以检查如何频繁的VisualBasic 库使用。在一个普通的VB程序将它经常使用,但在C#程序它通常只用于某些特定的任务,是不是在其他库可用,像则DateDiff 电话。

You can also check how frequently the VisualBasic library is used. In a regular VB program it would be used often, but in a C# program it would typically only be used for some specific task that isn't available in other libraries, like a DateDiff call.

任何VB特有的命令,如 CINT 将显示为调用 VisualBasic中库,甚至是 = 运营商对字符串使用时,将使用该库。这code(其中 A B 是字符串):

Any VB specific commands, like CInt or Mid will show up as calls to the VisualBasic library, and even the = operator when used on strings, will use the library. This code (where a and b are strings):

If a = b Then

实际上使库调用做了比较,显示了这样的时候为C#反编译:

will actually make a library call to do the comparison, and shows up like this when decompiled as C#:

if (Operators.CompareString(a, b, false) == 0) {