Ajouté le
20 octobre 2003.
Tel qu'annoncé en classe, je vous offre une archive
ZIP contenant plusieurs choses qui vous seront utiles dans la réalisation
de votre TP1, Usine
de bonheur (dont l'énoncé officiel ne devrait pas
trop tarder, mais dont vous connaissez aussi déjà le détail).
Cette archive contient:
- le serveur à proprement dit, nommé
ServeurTempsQuiPasse.exe. Ce serveur doit être installé
sur un ordinateur de votre choix--quoique, pendant la période
de mise au point de votre programme, il est bien possible que vous désiriez
l'installer sur votre propre ordinateur, question de ne pas interférer
avec les autres équipes de la classe;
- la DLL de marshalling,
nommée CompterTempsProxyStub.dll.
Je vous rappelle que cette DLL
doit être disponible et enregistrée sur le poste
où se trouve le serveur comme sur chaque poste où on trouve
un client;
- une archive nommée
Bibliotheques.zip qui contient deux projets de bibliothèques
à liens statiques (.lib)
dont mes projets clients se servent;
- une archive nommée
Commun.zip, qui contient le répertoire commun de
mon SC/S (un projet permettant
de compiler le fichier IDL contenant
les interfaces pertinentes);
- une archive nommée
ClientConfigTemps.zip, qui contient un client capable
de se connecter à l'interface
IConfigTemps du serveur résidant dans le
contexte exécutable ServeurTempsQuiPasse.exe
pour lire et (au besoin) modifier le rythme des tics et le nombre
de tics par étape; et enfin
- une archive nommée
ClientTempsQuiPasse.zip, qui contient un client de démonstration
capable de se connecter à l'interface
IConnnectionPointContainer du serveur résidant
dans le contexte exécutable
ServeurTempsQuiPasse.exe, puis d'y obtenir un point de connexion
(un IConnectionPoint)
pour ITempsQuiPasse
et de s'y abonner. Ce petit client utilise un objet de rappel
(un «sink», en terminologie anglaise) un peu simplet
qui ne fait qu'afficher un message à la console lors de chaque
rappel. Le modèle va sûrement vous aider, mais il vous
faudra vous en inspirer, pas le copier à l'aveugle.
Procédure d'installation, poste serveur
La «procédure d'installation» de ces outils
pour un poste serveur ira comme suit.
Répertoire d'entreposage
Tout d'abord, il est de mise de créer un dossier approprié
(votre choix) et y déposer
ServeurTempsQuiPasse.exe et
CompterTempsProxyStub.dll.
Au fond, ils peuvent être n'importe où, mais c'est plus
simple de les installer et de les désinstaller si vous pouvez
les retrouver facilement.
Le contexte exécutable
ServeurTempsQuiPasse.exe
Pour enregistrer les fabriques de
ServeurTempsQuiPasse.exe, il faut exécuter ce programme
en lui passant en paramètre
-RegServer ou /RegServer,
au choix. Il inscrira alors les fabriques au registre de lui-même.
Attention: prenez soin d'écrire son nom en entier à
la ligne de commande (incluant le
.exe de la fin), sinon il est possible qu'il s'inscrive au
registre en tant que serveur interne (DLL),
ce que vous ne voulez pas.
Pour désinscrire les fabriques de
ServeurTempsQuiPasse.exe, il faut exécuter ce programme
en lui passant en paramètre
-UnregServer ou /UnregServer,
au choix. Ça peut être pratique de savoir ça si
on veut faire du ménage de temps à autres
La DLL de marshalling
CompterTempsProxyStub.dll
Pour enregistrer la DLL
de marshalling nommée
CompterTempsProxyStub.dll, on procède comme pour l'enregistrement
de n'importe quelle DLL respectant
la norme COM--en utilisant
regsvr32.exe.
Il en va de même pour ce qui est de procéder à
sa désinscription.
Procédure d'installation, postes clients
La «procédure d'installation» de ces outils
pour un poste client ira comme suit.
Répertoire d'entreposage
Tout d'abord, il est de mise de créer un dossier approprié
(votre choix) et y déposer le contenu de l'archive
Commun.zip, le
contenu de l'archive Bibliotheques.zip,
le contenu de l'archive ClientConfigTemps.zip,
le contenu de l'archive ClientTempsQuiPasse.zip
et la DLL de marshalling
CompterTempsProxyStub.dll.
Au fond, ils peuvent être n'importe où, mais c'est plus
simple de les installer et de les désinstaller si vous pouvez
les retrouver facilement.
Avoir les projets Commun,
Bibliothèques,
ClientConfigTemps et
ClientTempsQuiPasse comme sous-répertoires d'un même
répertoire va aussi simplifier votre travail.
Générer les bibliothèques
Dans le répertoire Bibliothèques,
il devrait y avoir quatre (4)
sous-répertoires, nommés
include, lib,
projets et src.
Si vous voulez que tout se passe bien lorsque compilerez les projets
clients, il serait sage:
- de générer chacun des deux projets dans le sous-répertoire
projets;
- d'ajouter (par le menu Outils==>
Options==> Projets==> Répertoires de VC++ de Visual
Studio .NET 2003)
le répertoire include
à la liste des répertoires sous la rubrique
Fichiers include, un peu comme lorsqu'on prépare un
projet pour qu'il utiliser DirectX; et enfin
- d'ajouter (par le même menu) le répertoire
lib à la liste des répertoires sous la rubrique
Fichiers bibliothèques.
Ceci permettra entre autres aux projets clients d'inclure les fichiers
d'en-tête de ces bibliothèques (comme
Registry.h) à l'aide des symboles
< et > plutôt
qu'avec " et
" (par exemple:
#include <Registry.h>), et fera en sorte de permettre
l'édition des liens avec mes petites bibliothèques utilitaires.
Si vous voulez générer mes clients de démonstration
sans ennui, vous apprécierez avoir réalisé ces
étapes au préalable..
La DLL de marshalling
CompterTempsProxyStub.dll
Pour enregistrer la DLL
de marshalling nommée
CompterTempsProxyStub.dll, on procède comme pour l'enregistrement
de n'importe quelle DLL respectant
la norme COM--en utilisant
regsvr32.exe.
Il en va de même pour ce qui est de procéder à
sa désinscription.
Les clients
Il ne vous restera qu'à générer chaque client
et à les utiliser. Vous pourrez utiliser les sources comme bon
vous semble, dans la mesure où c'est pour votre usage personnel
(et non commercial).
|