2013-02-15 70 views
0

目前我們有一個用MFC(服務器)和Java(客戶端)編寫的傳統客戶端/服務器系統。由於各種原因,該系統不能在因特網上運行。因此,我們正在開發一個小型系統(這個遺留系統的功能很少),以滿足客戶的需求。MFC應用程序到Linux dll

現在,在這個新系統中,遺留系統需要一個功能。我們正在考慮製作該代碼的DLL,然後將它與Cake php結合起來(爲了節省時間),但是這個DLL在這個新系統所在的Linux上不起作用。

那麼,有沒有什麼辦法可以生成一個DLL,以便它可以在Linux系統中使用QT等的PHP?

OR

我們不得不重寫整個事情?在這種情況下,開發跨平臺DLL的最合適的框架是什麼。我寧願使用Windows來編寫它。

此外,我們可以運行與蛋糕php的DLL?

感謝

+0

Windows'DLLs'在linux上工作的唯一方法是[wine](http://www.winehq.org/)。你將需要用PHP重寫你的整個代碼。 MFC不能在Linux上工作,所以Qt在這裏是一個不錯的選擇。 – 2013-02-15 16:10:14

+1

這需要更多細節。移植此代碼的最佳策略完全取決於它的功能和使用的API。正如Aleksandar指出的那樣,如果您的依賴關係很簡單(例如,僅限win32調用),Wine/winelib可能是一個不錯的選擇。如果你有更復雜的需求,你可以考慮在你的Linux系統上作爲虛擬機來運行「真實」的窗口,並編寫一些shim代碼來通過本地套接字從PHP與你的windows服務器通信等等。但是細節問題,我們無法告訴您如何移植我們從未見過的代碼。 – 2013-02-15 16:15:07

+0

感謝您的意見,它不是複雜的功能。由於此代碼是大型MFC應用程序的一部分,因此我希望重複使用此代碼並將其放入運行在Linux上的PHP庫中。它主要使用MFC的CString,列表類,如CStringList等,用於ODBC連接的SQL API。我希望它能讓這個要求更清晰。 – user2076166 2013-02-15 17:39:51

回答

0

那麼,有沒有什麼辦法可以生成一個DLL,以便它使用QT等用PHP工作在Linux系統中?

不,Linux不支持DLL文件格式。您可能希望從源代碼中編譯ELF格式的共享對象文件。

0

我認爲,兩個最突出的跨平臺GUI庫是wxWidgetsQt

您不能使用Windows DLL作爲Linux應用程序的一部分。這是不可能的,因爲不同的對象格式。

所以,唯一的選擇是以某種形式重寫或移植它。

移植應用程序的指南可能是Porting MFC applications to Linux,它使用wxWidgets。

另一個使用Qt的可能是MFC to Qt Migration - Walkthrough