【问题标题】:Is an EXE just a DLL with a main method?EXE 只是一个带有 main 方法的 DLL 吗?
【发布时间】:2013-03-25 15:43:06
【问题描述】:

我偶然发现了一个关于程序集、DLL 和 EXE 文件之间的确切区别的问题。

下列说法正确吗?

如果一个 DLL 有一个 main 方法,那么它会变成一个可执行文件吗? (EXE)

【问题讨论】:

  • 这个问题不是suggested question的重复问题。这个问题是“对还是错:如果一个 DLL 有一个 main 方法,那么它就是一个可执行文件”,答案是“错的”。建议的问题是“程序集和 DLL 有什么区别?”

标签: c#


【解决方案1】:

以下说法正确吗:如果 DLL 有 main 方法,那么它就变成了可执行文件?

那句话是不正确的。

DLL 和 EXE 文件都使用 PE 文件格式。 DLL 和 EXE 的区别在于 DLL 在 IMAGE_FILE_HEADER 部分的特性字段中设置了标志 0x2000。

更多细节可以在这里找到:

Peering Inside the PE: A Tour of the Win32 Portable Executable File Format by Matt Pietrek

【讨论】:

    猜你喜欢
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多