# Thursday, January 17, 2008

 

Mise à jour du 7 avril 2008 : la version finale du feature pack est disponible !

 

J'ai installé la version béta du Service Pack Feature pack de Visual Studio 2008. 300 Mo, quand même...

Attention ! Ce Feature Pack ne s'installe que sur une version anglaise de Visual Studio Professional (ou +). Il faut aussi que le DVD d'installation de Visual Studio soit inséré dans le lecteur si vous n'avez pas fait une installation complète de Visual C++.

Le feature pack de Visual C++ contient une version de TR1 de C++0x, et la nouvelle version des MFC. Je vais parler ici des MFC seulement.

Les MFC à la diète !

Première chose, je regarde la taille de la DLL redistribuable des MFC : mfc90.dll passe de 1130 Ko à 3666 Ko une fois le Feature Pack installé. Ouch, ce n'est pas rien ! D'où vient l'accroissement de la taille ? Des quatre thèmes office 2007 inclus. Il y a environ 500 fichiers PNG dans mfc90.dll. Chaque fichier PNG existe en 4 versions, une pour chacun des quatre thèmes de Office 2007 : Aqua, Black, Blue, Silver.

C'est pratique d'avoir une seule DLL, mais ça serait peut-être bien de mettre les bitmaps des 4 thèmes Office dans 4 DLL différentes. Genre MFC91UXBLUE.DLL. Histoire d'économiser 2 Mo. Oui, oui, il y a quand même encore des gens qui regardent la taille des exécutables qu'ils produisent...

Là où c'est encore plus gênant, c'est quand on "linke" statiquement avec les MFC. Toutes les images des 4 thèmes Office se retrouvent dans le fichier EXE, même si on ne les utilise pas. Ca, c'est pas bien du tout ! Du coup, la moindre application avec les MFC liées statiquement fait presque 3 Mo. Si on ouvre l'exécutable généré dans Visual Studio pour voir les ressources, on obtient... ça :

J'espère que les MFC9.1 feront une petite diète avant de sortir en version finale... un petit régime avant l'été, ça serait sympa ?

Exemples d'interfaces utilisateur

Que peut-on faire avec ces nouvelles MFC ? Ah, ça déchire, comme disent les jeunes de maintenant. Voici quelques captures d'écran, pour le plaisir des yeux. Je vous propose en plus ces programmes en téléchargement, pour que vous puissiez apprécier la richesse de l'interface. J'avoue que l'aperçu avant impression de l'application MFC91Ribbon est pas mal, ainsi que le changement de style à la volée, et.... etc, etc.

Voici un exemple d'application C++/MFC avec un Ribbon :

 

Un autre exemple avec une interface genre Visual Studio, et "Diamond Docking" :

 

Vous pouvez télécharger ces deux applications ci-dessous, si vous voulez jouer avec (pour Windows Vista seulement). J'ajouterai d'autres exemples très bientôt. Enjoy !

MFC90samples.zip (2,46 MB)

Tags  | 
 17 January 2008, 18:46
Friday, January 18, 2008 10:10:39 AM (Romance Standard Time, UTC+01:00)
Salut,
Les applis ne se lancent pas, d'aprés Dependency Walker, il manque la dll MFC90U.DLL et DWMAPI.DLL(?).

Sinon, ça a de la gueule. Mais cela arrive un peu tard, je doit refaire les IHM de mes applis, et on me demande de les faire en silverlight, les moteurs restants en c++ (ouf!).
Friday, January 18, 2008 12:34:53 PM (Romance Standard Time, UTC+01:00)
Salut,
Si quelqu'un pouvait partager la dll MFC90U.DLL.
La version installé VCRedit2008 est trop ancienne.
Merci
Pierre
Friday, January 18, 2008 2:34:52 PM (Romance Standard Time, UTC+01:00)
Oups !
J'ai modifié le fichier ZIP. J'avais mis la version Ansi (MFC90.DLL) à la place de la version unicode (MFC90U.DLL).
Si de bonnes âmes veulent bien me dire si ça fonctionne maintenant ! (pmf at live point com)
Friday, January 18, 2008 2:39:16 PM (Romance Standard Time, UTC+01:00)
@Patrice : l'IHM en Silverlight et le moteur en C++ est une solution à laquelle je m'intéresse aussi... en utilisant l'activeX Silverlight dans une appli C++ ? Ou bien en appelant du code natif C++ depuis du code C#/Silverlight ?
Pierre Morel-Fourrier
Tuesday, January 22, 2008 10:36:24 AM (Romance Standard Time, UTC+01:00)
Salut,
Tes exemples ne fonctionnent pas sous XP, il manque la dll DWMAPI.DLL, et pour cause, il semblerait que celle ci soit le Windows Manager de Vista.
Silverlight, je pense que je vais herbergé l'activeX dans une appli C++, car d'aprés MS, il n'est pas sûr qu'on puisse creer une application silverlight qui se lance comme un programme normal. Pour l'instant...
Patrice
Comments are closed.