Skip Navigation Links
Accueil
Java Standard EditionExpand Java Standard Edition
Java EE 5Expand Java EE 5
Visual Basic .Net 2005Expand Visual Basic .Net 2005
Visual C++ .Net 2005Expand Visual C++ .Net 2005
Visual C# .Net 2005Expand Visual C# .Net 2005
Cours ASP .Net 2.0Expand Cours ASP .Net 2.0
PostgresqlExpand Postgresql
LinuxExpand Linux
Visual Studio 2008Expand Visual Studio 2008
ASP 3.0 ClassiqueExpand ASP 3.0 Classique
Cours Javascript - DOM - DHTMLExpand Cours Javascript - DOM - DHTML
Cours AjaxExpand Cours Ajax
VBAExpand VBA
AssembleurExpand Assembleur
PerlExpand Perl
MembresExpand Membres
L'auteur du site
Nouveautés sur le site
Contacts
Plan du site
Accueil > Visual C++ .Net 2005
____________________________________________________________________________________________________
Connexion

SOMMAIRE

I) GENERALITES

I.1) Les applications windows form

I.2) les applications MFC

I.3) Objets managés et objets non managés - généralités

I.4) Les objets non managés

I.5) Les objets managés - Les handles

I.6) L'opérateur top-level: ^

II) CREER SES PROPRES EVENEMENTS EN C++ .NET

II.1) Rappel sur les procédures liées( aux évènements)

II.2) La procédure à suivre pour créer ses évènements

COURS VISUAL C++ 2005 .NET

I) GENERALITES

 Ce cours n'est pas complet. Je préciserai des points utiles à savoir du langage VISUAL C++ 2005.
  Je vous conseille, avant d'aborder le langage C++ 2005, de commencer par le visual Basic 2005, ou encore par le C# 2005. Ainsi, vous pourrez comprendre toutes les notions de la programmation orientée objet, sans vous encombrer trop avec des préoccupations de bas niveau.

I.1) Les applications windows form

  Le Visual C++ 2005 est capable de créer des applications windows. Il utilise pour cela les windows forms. C'est un des moyens, le dernier, pour parvenir à créer une application windows.
  Les applications Windows Forms sont des applications managées. Elles le sont par le Framework 2.0 . Les objets créés dans une application WinForm sont managés eux aussi par le Framework. Ce qui a pour avantage énorme d'être détruits automatiquement par le garbage collector, quand ils ne sont plus référencés. Et tout en gardant la possibilité de les détruire par nous-même, avec la fonction delete.

I.2) les applications MFC

  Cependant, il existe d'autres moyens, plus anciens, comme les MFC( Microsoft Foundation Classes). Ce sont des classes fournies par Microsoft, qui permettent de créer des applications windows. L'application ainsi produite sera appelée application MFC. Les MFC étaient fournies avec Visual C++ 6.0. Elles sont encore disponibles dans visual studio 2005, mais pas dans la version express. La personne qui ne dispose que de visual studio express, ne peut donc pas utiliser les MFC, ce qui est un gros problème des MFC.
  Les applications MFC sont intégrables simultanément dans des applications windows forms.

  Les applications MFC ne sont pas managées par le Framework .Net, au contraire des winforms. Les objets créés ne seront par conséquent pas managés. Le garbage collector ne les détruira donc pas. Et vous devrez donc les éliminer vous-même, avec le risque bien connu de remplissage de la mémoire( si vous oubliez de les libérer).  

I.3) Objets managés et objets non managés - généralités

  Les objets créés dynamiquement en visual c++ 2005 .net sont des objets managés par le .net framework. Il est possible toutefois de créer des objets non managés, comme les allocations classiques en C. Dans ce cas, on ne fait plus du .net!

  L'avantage des objets managés, c'est qu'ils sont détruits par le garbage collector, sans que l'on ait à s'en préoccuper. Par contre, les objets non managés doivent être détruit "manuellement".

I.4) Les objets non managés

  Rappelons d'abord que les objets non managés ne sont plus du .net.
  Pour créer des objets non managés, on utilise le new classique:
  personne* Jean = new personne( );
 Un objet de la classe personne est ici alloué dans la mémoire. Jean contient l'adresse en mémoire de cet objet.

L'objet lui-même, c'est la valeur pointée par Jean. L'objet, c'est *Jean . Le champs age de Jean, c'est *Jean.age, ou encore Jean->age

I.5) Les objets managés - Les handles

  Voici le cas qui nous intéresse.
  Un objet managé est créé dans le tas( heap) du framework. Alors que les objets non managés sont créés dans la mémoire. Bien entendu, le tas est situé dans une partie de la mémoire. Mais c'est une partie de la mémoire, appelée tas( heap en anglais), qui est réservée pour le .net framework, au même titre que la pile pour l'exécution.

  Pour désigner où se trouve un objet managé, on n'utilise non pas son adresse en mémoire, mais un handle. Le handle est un identifiant qui permet de désigner l'objet de manière unique. C'est juste une autre manière de référencer l'objet. On ne parlera plus d'adresses pour les références d'objets managés.

I.6) L'opérateur top-level: ^

  Pour créer des objets managés, on utilise gcnew, et non pas new. Exemple:
personne^ Jean = gcnew personne( );

Jean est une référence sur un objet de la classe personne. C'est le handle de l'objet managé.

  Pour les objets .net, on utilise donc l'opérateur ^, et non pas * .

  Pour accéder aux membres de l'objet, on écrit:

Jean->age . Car Jean étant une référence sur un objet personne, on ne peut pas écrire Jean.personne. Jean->age signifie: l'attribut age de l'objet pointé par Jean.


RETOUR HAUT