【发布时间】:2015-05-15 21:49:38
【问题描述】:
我正在尝试寻找不同的方法在不同的应用程序中重用我的 C++ 函数。比如说我有以下功能:
Function A(){} // this will do a complex math operation
Function B(){} // this will load a complex shape file
Function C(){} // Print the results.
我需要在 3 个不同的 C++ 程序中使用上述 3 个函数。它们是完全独立的,我试图看看在我的所有应用程序中使用它们的最佳方法是什么,而不是编写相同的代码 3 次。
我正在考虑以下选项:
Option A: Writing static library
Option B: Writing dynamic library
Option C: Windows Services
Option D: Same code and compile everywhere
还有其他选择吗?或者什么是最好的选择?
【问题讨论】:
-
唯一可能的答案可能是:视情况而定!它依赖的东西很多,首先它很大程度上取决于你的用例,这对我们来说是未知的。它还取决于您是否希望“功能”成为类似实用程序的功能,是否可以预测它们的所有未来用途(通常您不能),未知应用程序是否将使用这些功能,以及未来如何未知应用程序可能想要使用您的函数,允许远程“调用”函数(即通过网络),以及许多其他事情。所以不幸的是,你的问题目前很广泛
-
只做一个静态库,以后如果需要可以转成动态库。窗口服务对于库来说并没有多大意义,因为窗口服务通常提供完整的服务而不仅仅是一个功能,并且您必须具有某种进程间接口,例如管道、共享内存、共享数据文件或插座。
-
完全内联的 C++ 头文件,可调用您构建为动态库的 C API。
标签: c++ dynamic static modular