2010-11-06 5 views
2

J'essaie de conserver le plus possible ma plate-forme de projet C++.
Bien qu'ayant des dépendances sur les classes MFC \ ATL suivantes: CString, CTime, CTimeSpan.Prise en charge multiplate-forme pour diverses classes MFC ATL

Y at-il une implémentation ouverte quelque part des classes MFC \ ATL?
Quelle est la fréquence de ces paquets et dois-je utiliser les librairies Open Source pour commencer, ou devrais-je attendre que le besoin s'en fasse sentir?

+4

Envisager de porter Qt à la place, comme un avantage secondaire Qt est beaucoup plus agréable à travailler. –

+1

@Paulo: sérieux? Convertir un projet entier en un projet Qt et le système de construction Qt juste pour ces 3 classes? – Inverse

+0

Si ce n'est pas l'interface graphique, pourquoi utiliser MFC et non STL simple? Si c'est une interface graphique et qu'il veut être multi-plateforme, le portage vers Qt est le moyen le plus simple pour C++. –

Répondre

4

Au lieu de CString utilisation std::string

Au lieu de CTime utilisation boost::ptime

Au lieu de CTimeSpan utilisation boost::time_duration

1

Je ne recommande pas de faire confiance à ces catégories. Ils sont spécifiques de MFC/ATL, et ne seront pas facilement portés aux Unix, par exemple. Essayez de créer une couche de conversion distincte, et essayez de construire autour de boost bibliothèques, beaucoup plus portable.

2

Bien que cette proposition ne sera pas répondre à vos besoins de la plate-forme de croix, elle ne répond à la demande de "implémentation ouverte des classes MFC/ATL".

Consultez la bibliothèque de modèles Windows (WTL).

Microsoft open source il ya quelques années, vous pouvez le télécharger à partir de son sourceforge project page, et il est également disponible sur le site Web de Microsoft quelque part. La description de la page SourceForge: Windows Template Library (WTL) est une bibliothèque C++ pour le développement d'applications Windows et de composants d'interface utilisateur. Il étend ATL (Active Template Library) et fournit un ensemble de classes pour les contrôles, les boîtes de dialogue, les fenêtres de cadres, les objets GDI et plus encore.

Espérons que cela aide!