【问题标题】:What's the use of DLL files and why I cannot see the source code of a random app?DLL 文件有什么用,为什么我看不到随机应用程序的源代码?
【发布时间】:2021-11-04 16:21:55
【问题描述】:

标题基本上说明了一切。这可能是一个愚蠢的问题(可能是),因为我对编程完全陌生。我想知道当您检查他们的程序文件时,我们使用的桌面应用程序是如何由大部分 .dll 文件组成的,但甚至没有一个源代码文件?有什么办法可以打开它们,或者我怎样才能把我的代码文件变成.dll?

【问题讨论】:

    标签: file dll


    【解决方案1】:

    简短回答:DLL 文件已“编译”。

    编译后的文件不再依赖其源代码。编译完成后,可以直接被操作系统执行。

    DLL 文件不是“脚本”。在 HTML、Javascript 和 PHP 等语言中,文件在运行时由浏览器的 HTML 或 Java 引擎或服务器上的 PHP 引擎解释。因此,您也可以阅读它们,因为它们尚未编译。但在 DLL 文件的情况下,原始源代码文件已经被编译(解释和转换),结果是一个可执行库,另一个程序使用它来完成其中的任何任务。

    可以用反编译器“反编译”它们,但这不会给你原始源代码,就像“jpg”会给你原始的分层 Photoshop 文件一样。你所拥有的只是结果。

    【讨论】:

    • 操作系统不执行编译后的代码。它将它加载到内存中,设置指令指针,然后著名的 CPU “fetch-decode-execute”循环开始(实际上,OS 代码本身也通过 CPU “fetch-decode-execute”运行)
    【解决方案2】:

    这正是 DLL 文件。 DLL 文件是包含由“主”源代码调用的代码的库,这些代码被编译成“.exe”文件。 您无法看到此类代码是其所有者有意为之,除非源代码本身与已编译的软件一起发布。项目可能会集成其他人已经开发的 .dll 文件,而不是从头开始开发。

    至于如何将您的代码转换为.dll,这将取决于您正在开发的语言。

    更详细的答案在:What exactly are DLL files, and how do they work?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多