2010-03-25 28 views
2

我的任務是將現有的Windows GUI應用移植到Linux。理想情況下,我想這樣做,以便可以使用相同的代碼庫來構建Windows版本或Linux版本。我將在Ubuntu 9.04上完成我的工作。在四處搜尋之後,我不清楚哪些工具最適合用來幫助我。將用C編寫的現有Windows GUI應用程序移植到Linux有什麼選擇?

的寬鬆要求列表是:

  1. 的代碼是C,不是C++,並應編制建立在Windows和Linux版本。由於它是現有的代碼,並且相當大,因此現在轉換爲像.NET這樣的託管語言是不成問題的。

  2. 我寧願如果我可以在兩個系統中使用相同的對話框。在Windows中,建立一個對話框非常簡單。您在Visual Studio中的資源編輯器中創建對話框,然後調用DialogBox()API並處理事件消息。我真的很想找到能在Linux方面做同樣的事情。

  3. 這也很好,有一個類似於Visual Studio的好IDE。

任何幫助或暗示將不勝感激。
謝謝,

回答

1

由於您的代碼庫在C,我會建議使用GTK+。這是一個跨平臺的GUI工具包。例如,Pidgin即時通信GUI是使用GTK +創建的。用戶界面設計器可用於圖形化設計用戶界面。

+0

查看Glade教程。方法的主要區別在於GTK +對事件使用函數回調,而不是發佈消息。 – caf 2010-03-26 00:49:46

6

Winelib應該讓你在Linux下編譯Win32代碼,只需做一些修改。

+0

Winelib可能是最好的選擇,尤其是考慮到應該使用現有對話框(資源)的要求。 – 2010-03-26 07:05:49

0

如果您的預算緊張,並且不介意花時間解決相當多的限制,Winlib是一個選項。如果時間較短,且預算較大,則可能需要考慮Mainsoft。這並不完美,但我相信它支持Win32 API的相當大一部分(價格相應較高)。

+0

非常好。感謝大家的幫助。我可能會首先嚐試WineLib,因爲這聽起來可能是最簡單和最不具有破壞性的方法,如果Winelib不能解決問題,那麼Mainsoft也是如此。 – 2010-03-26 18:55:57

+1

事實證明,Winelib並沒有做我想做的事情,因爲它產生了一個仍然需要Wine運行的二進制文件。我目前正在檢查Anjuta IDE和Glade,它們看起來更像Visual Studio。 – 2010-04-01 20:45:21

相關問題