使用 exe 或 DLL 从另一个程序调用程序

Using exe or DLL for calling program from another program

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

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

Are there any advantages in using a dll ( like security, size, etc)

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

Is it easy to create a dll from my source-code ( I use Qt creator)

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

顺便说一句:.dll.exe 完全一样。您可以加载一个 .exe 就好像它是一个 DLL;给它一个DllMain,你可以用任何一种方式使用它!当然,使用 LoadLibrary 加载 EXE 不会使其成为单独的进程 运行,而是将所有错误导入您的主程序。