例如,我们有一个用C/C++编写的图像处理程序的接口(interface)。我们有过滤器、模糊、去模糊、调整大小、压缩和所有其他需要大量计算的东西。您将如何设计此类应用程序模块 - 作为 .exe 接口(interface) + 一组 .exe 模块在彼此之间 throw 文件或作为 .exe 接口(interface) + 具有所需方法的 .dll?
每种方法的优点和缺点是什么?
如果我使用.dll,在什么情况下我将被迫重新编译接口(interface)的.exe? 我们建议必须提供给模块的数据大小足够大,以便在某些执行位置将其写入磁盘。
提前致谢。
附言图像处理只是一个例子,任何具有此类模块的系统都可以放在问题中。
最佳答案
我会使用 DLL,这就是它们的用途。在重新编译方面:如果更改 EXE 和 DLL 之间的二进制接口(interface),则必须重新编译 DLL!
如果您选择 DLL 并希望独立于编译器,则必须定义一个 STABLE ABI。这可以根据 C + 一些 typedef(char 的符号、bool 的大小等)或类似于 COM 的处理方式来完成。
我个人会选择第二条路线——知道定义一个好的二进制稳定 ABI 需要多少时间...
关于c++ - .exe 与 .dll 作为一个程序的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11291406/