2010-11-06 53 views
2

我正在努力盡可能保持我的C++項目跨平臺。
雖然我確實依賴於以下MFC \ ATL類:CString,CTime,CTimeSpan對各種MFC ATL類的跨平臺支持

在MFC \ ATL類的某處是否有打開的實現?
這些軟件包有多普遍,我應該使用開源庫開始,還是應該等到需求出現?

+4

考慮移植到Qt,作爲一個好處Qt是更好的工作。 – 2010-11-06 17:27:44

+1

@Paulo:認真嗎?將整個項目轉換爲Qt項目和Qt構建系統,僅用於這三個類? – Inverse 2010-11-06 17:52:44

+0

如果不是GUI爲什麼使用MFC而不是普通的STL?如果是GUI並且他想跨平臺,移植到Qt是C++最簡單的方法。 – 2010-11-06 17:58:36

回答

4

代替CString使用std::string

代替CTime使用boost::ptime

代替CTimeSpan使用boost::time_duration

1

我建議不要依賴這些類。例如,它們特定於MFC/ATL,並且不會輕易移植到Unix。嘗試構建一個單獨的轉換層,並嘗試構建大約boost庫,更便於攜帶。

2

雖然這個建議不會回答你的跨平臺的要求,但它滿足的要求「開放實現MFC/ATL類」。

檢出Windows模板庫(WTL)。

微軟在幾年前開源,你可以從它的sourceforge project page下載它,它也可以從微軟的網站上下載。

來自SourceForge頁面的描述: Windows模板庫(WTL)是一個用於開發Windows應用程序和UI組件的C++庫。它擴展了ATL(活動模板庫)併爲控件,對話框,框架窗口,GDI對象等提供了一組類。

希望這會有所幫助!