【问题标题】:Using exe or DLL for calling program from another program使用 exe 或 DLL 从另一个程序调用程序
【发布时间】:2021-05-10 15:16:45
【问题描述】:

我有一个大程序 A,它有时会调用我的(大)程序 B。程序 B 在程序 A 中只被调用一次。此时程序 B 是一个可执行程序(B.exe - 编译的 C++ 代码) .

有人建议使用程序 B 的 DLL,而不是使用可执行文件。

  • 使用 DLL 是否有任何优势(如安全性、大小等)
  • 从我的源代码创建 DLL 是否容易(我使用 Qt 创建器)

【问题讨论】:

    标签: c++ dll exe


    【解决方案1】:

    使用 dll 有什么好处(例如安全性、大小等)

    没有。事实上,如果您正在查看安全性、大小等问题,使用 DLL 会使事情变得更糟。当你加载一个 DLL 时,一切都发生在加载进程的地址空间内。因此,DLL 中的任何错误都会直接影响程序的其余部分。 DLL 代码崩溃,会导致整个程序崩溃。

    从我的源代码创建 dll 是否容易(我使用 Qt 创建器)

    是的。但对我来说,您的特定用例似乎几乎没有任何好处。事实上,对于很少使用的代码路径,我强烈建议将其放入单独的进程中(即将其链接到 .EXE)。

    顺便说一句:.dll.exe 完全相同。您可以像加载 DLL 一样加载 .exe;给它一个DllMain,你可以使用它!当然,使用LoadLibrary 加载 EXE 不会使其在单独的进程中运行,而是将所有错误导入到您的主程序中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-07
      • 2010-10-25
      相关资源
      最近更新 更多