我有一个 DLL,比如 A,它实现了求解数学方程式的通用算法。 我有另一个 DLL,比如 B,它实现数学方程式 DLL B 使用 DLL A 来求解它的方程式,但 DLL B 必须能够从 DLL A 执行给定的方程式(DLL A 实现了一些数值、近似方法,并在给定的方程式上“尝试”不同的值作为其实现所需数学的步骤解决方案) 现在,DLL A 必须“知道”DLL B,反之亦然。
这是一个“糟糕”的设计吗? 我可以考虑这样的代码作为业余 cose 吗? 你会怎么做(请记住 DLL A 实现了通用算法,这些算法被其他不同的 DLL 使用,这些 DLL 实现了数学方程式)?
谢谢 大卫
最佳答案
DLL A 没有理由需要明确了解 DLL B,它只需要一个接口(interface)来计算它要求解的方程。
接口(interface)可以由函数签名指定,指向合适函数的指针将由 B 传递给 A,或者它可以表示为抽象类,并且可以传递指向实际派生实例的指针或引用从 B 到 A。
尽管有可能拥有相互依赖的 dll,但通常不是一个好主意。在这种情况下,我认为没有必要。
关于c++ - DLL 之间的交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1150800/