我試圖找到不同的方法來在不同的應用程序中重用我的C++函數。舉例來說,我有以下功能:尋找不同的方法來與不同的C++應用程序共享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個函數。它們是完全獨立的,我試圖看看在我的所有應用程序中使用它們的最佳方式,而不是三次寫入相同的代碼。
我想到了以下選項:
Option A: Writing static library
Option B: Writing dynamic library
Option C: Windows Services
Option D: Same code and compile everywhere
是否還有其他選擇嗎?或者什麼是最好的選擇?
唯一可能的答案可能是:這取決於!它依賴的東西很多,首先取決於你的用例,這對我們來說是未知的。這也取決於你是否希望「功能」是類似於實用程序的功能,如果你能預測它們將來的所有用途(通常你不能這樣做),如果未知的應用程序要使用這些功能,以及未來的未知用途應用程序可能想要使用你的函數,允許函數被遠程「調用」(即通過網絡),還有很多其他的東西。所以不幸的是你的問題是目前廣泛的 –
[未來](http://clang.llvm.org/docs/Modules.html) –
只要做一個靜態庫,然後如果你需要,你可以把它變成一個稍後動態庫。由於Window Service通常提供完整的服務而不僅僅是一項功能,而且您必須具有某種進程間接口,例如管道,共享內存,共享數據文件或插座。 –