2012-07-02 52 views
0

例如,我們有一個用C/C++編寫的圖像處理程序的界面。我們有過濾器,模糊,去模糊,調整大小,壓縮等所有其他需要大量計算的東西。你將如何設計這樣的應用程序模塊 - 例如.exe接口+ .exe模塊組彼此之間的文件或作爲.exe接口+ .dlls與所需的方法之間的文件?.exe與.dll作爲一個程序的模塊

每種方法的優點和缺點是什麼?

如果我使用.dlls,在什麼情況下我將被強制重新編譯接口的.exe? 讓我們建議必須賦予模塊的數據大小足夠大,以便在某些執行位置更喜歡將其寫入磁盤。

在此先感謝。

P.S.圖像處理就是這樣的例子,任何帶有這些模塊的系統都可以放在問題中。

回答

1

我會使用DLL,這就是他們的目標。在重新編譯方面:如果您更改EXE和DLL之間的二進制接口,您將不得不重新編譯您的DLL!

如果您使用DLL並希望獨立於編譯器,您將不得不定義一個STABLE ABI。這可以通過C +一些typedefs(char的簽名,bool的大小,...)來完成,或者類似於COM如何處理它。

我個人會爲第二條路線 - 知道需要多少時間來定義一個良好的二進制穩定的ABI ...

0

我會用DLL和所需的方法。 DLL只是爲這項工作而設計的。

1

這取決於您的系統耦合程度以及性能問題。

  1. 如果要使用來自不同供應商的代碼,則已知格式的共享文件是可取的。

  2. 如果您需要每秒處理數千幅圖像,那麼DLL可能會更好。

相關問題