2010-03-25 3 views
2

J'ai été chargé de transférer une application graphique Windows existante vers Linux. Idéalement, j'aimerais le faire afin que la même base de code puisse être utilisée pour construire la version Windows ou la version Linux. Je vais faire mon travail sur Ubuntu 9.04. Après une recherche, je ne sais pas quels outils sont les mieux adaptés pour m'aider.Quels sont les choix de portage de l'application Windows GUI existante écrite en C vers Linux?

Une liste des exigences en vrac serait:

  1. Le code est en C, C++ non, et devrait compiler pour construire les versions Windows et Linux. Comme il s'agit d'un code existant, et assez volumineux, la conversion vers un langage managé comme .NET est hors de question pour le moment.

  2. Je préférerais pouvoir utiliser les mêmes boîtes de dialogue dans les deux systèmes. Dans Windows, mettre en place une boîte de dialogue est assez simple. Vous créez la boîte de dialogue dans l'Éditeur de ressources dans Visual Studio, puis appelez API DialogBox() et gérez les messages d'événement. J'aimerais vraiment trouver quelque chose qui puisse faire l'équivalent du côté Linux.

  3. Il serait également intéressant d'avoir un bon IDE similaire à Visual Studio.

Tout aide ou conseil serait apprécié.
Merci,

Répondre

1

Puisque votre base de code est en C, je suggère d'utiliser GTK+. C'est une boîte à outils d'interface graphique multi-plateforme. Par exemple, l'interface graphique instantanée de Pidgin est créée avec GTK +. Glade concepteur d'interface utilisateur peut être utilisé pour concevoir graphiquement des interfaces utilisateur.

+0

Découvrez les tutoriels Glade. La principale différence dans l'approche est que GTK + utilise des rappels de fonction pour les événements, plutôt que de poster des messages. – caf

6

Winelib devrait vous permettre de compiler le code Win32 sous Linux avec seulement quelques modifications.

+0

Winelib est probablement le meilleur pari, en particulier étant donné l'exigence que le dialogue existant (ressources) devrait être utilisé. –

0

Si vous avez un budget serré et que vous ne prenez pas le temps de contourner un certain nombre de limitations, Winlib est une option. Si votre budget est plus court et que vous disposez d'un budget plus important, vous pouvez rechercher le Mainsoft à la place. Ce n'est pas exactement parfait, mais je crois qu'il supporte une partie considérablement plus importante de l'API Win32 (à un prix proportionnellement plus élevé).

+0

Excellent. Merci à vous tous pour votre aide. Je vais d'abord essayer WineLib d'abord, car cela semble être le moyen le plus facile et le moins perturbateur, et ensuite Mainsoft si Winelib ne fonctionne pas. –

+1

Il s'avère que Winelib ne fait pas ce que je veux, car il produit un binaire qui nécessite encore Wine pour fonctionner. Je suis actuellement en train de vérifier Anjuta IDE et Glade, qui semblent plus proches de ce que fait Visual Studio. –

Questions connexes