簡體   English   中英

如何從C ++ Builder移植?

[英]How to port from C++ Builder?

我有一個用C ++ Builder編寫的大型程序,很大程度上依賴於VCL圖形庫。 由於許多原因,我想放棄此工具。 有兩個可供選擇的編譯器可供使用,我對其中任何一個都開放。

我想知道的是,如何逐步進行實際的移植? 有沒有人做到這一點並可以分享他們的經驗?

我想第一步是將GUI / VCL與應用程序分開。 該程序本來應該是這樣設計的,但遺憾的是事實並非如此。 僅此一項是一個重大項目,但是那之后我應該去哪里呢? 我是否應該在.dll文件中鏈接VCL GUI,將它們包括在新的編譯器中,但是如果需要,可以從Builder對其進行維護?

我同意您應該將表示層與業務邏輯分開。

如果您正在尋找VCL的替代GUI框架,則可以考慮Qt 它還帶有一個具有UI設計器的IDE(因此與C ++ Builder相當),但具有跨平台和開源的優點。

我曾經在MFC遇到過同樣的情況。 我的建議是從頭開始,並重用舊代碼中的所有內容,並且這次不要使邏輯混亂! ;)

正如您所說的那樣,我首先將表示層與業務邏輯分開。 首先在熟悉的C ++ Builder環境中執行此操作:從應用程序中刪除業務邏輯,並將其重新創建為一個或多個單獨的模塊(在Windows上為DLL),並更改表示層,以便程序仍可運行,但可以訪問這些模塊以用於所有業務邏輯操作。

然后,您可以在不使用VCL的情況下重寫應用程序。 您可能會堅持使用C ++並使用另一個GUI庫(Qt當然是其中的一種,wxWidgets也很值得一看),或者您可能想更改表示層的語言(取決於您自己的技能和偏好)。

將業務邏輯移出演示文稿的另一個吸引人之處在於,它隨后變得更加易於測試。

我建議您在開始之前先閱讀一下邁克爾·費瑟斯(Michael Feathers)的書《有效地使用舊版代碼》 他為這種重構提供了一種很好的方法(並且非常基於測試)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM