我最近几年才开始学习编程,所有这些都是在C#.NET中。我知道.NET文件之前存在DLL文件所以我想知道的是我现在创建的.NET DLL文件和之前存在的COM DLL文件之间是否有任何相似之处?换句话说,如果我采用我今天在.NET之前及时创建的.NET DLL并将其交给COM开发人员,他们是否能够从文件中获取任何信息?或者它只是看起来像一个他们熟悉的扩展名的乱码文件?
更新
感谢目前为止的回复。那么EXE文件怎么样? .NET EXE和COM EXE之间是否有任何相似之处?安装了.NET的计算机是否能够找到.NET exe的入口点,或者只是认为该文件已损坏或无效?
答案 0 :(得分:4)
相似性,以及相同扩展的重用,是它们在功能上是等同的。也就是说,它们都是包含潜在共享方法和类的类库。
但是,除非.NET dll是COM可见的,否则,COM开发人员将无法从他们那里获得任何有用的信息。
编辑:
根据您的更新,未安装.Net的计算机(或者甚至没有安装.Net框架所需版本的计算机)将能够找到应用程序的入口点,但它会很快失败并出现异常(是,在它真正做任何事之前。)
答案 1 :(得分:1)
没有任何对应关系。 .NET程序集是一个数据文件,它包含5个字节的机器代码。其余的是元数据和IL。没有反编译工具就足够了,比如ildasm.exe或Reflector。