|
|
|
|
|
- Présentation
- Créer un assemblage .NET accessible par COM à partir d'un projet WINDEV
- Création d'un assemblage .NET accessible par COM
- Utiliser un assemblage dans un programme C++
Créer un assemblage .NET accessible par COM
Avant de créer un assemblage .NET, tous les éléments nécessaires à cet assemblage doivent avoir été développés dans un projet WINDEV. Créer un assemblage .NET accessible par COM à partir d'un projet WINDEV Création d'un assemblage .NET accessible par COM Pour créer un assemblage .NET accessible par COM, il faut : - Créer un fichier ".snk".
Le fichier snk contient le couple "clé publique/clé privé" utilisé pour signer numériquement les assemblages créés par une entreprise. Généralement, le même fichier snk est utilisé pour signer tous les produits d'une entreprise. Ce fichier doit évidemment être gardé secret pour éviter qu'une tierce personne ne puisse signer ses propres assemblages avec la même signature. Pour générer un fichier ".snk", il est nécessaire d'utiliser le générateur livré avec le SDK .NET (fichier sn.exe). La ligne de commande à utiliser pour générer un fichier snk est la suivante :
"sn.exe -k MonFichierSNK.snk" Un fichier exemple est fourni avec WINDEV, dans le répertoire "Programs\Data\Exemple.snk"du répertoire d'installation de WINDEV. Ce fichier permet de tester la génération d'assemblage à nom fort. Remarque : ce fichier étant diffusé avec WINDEV, il ne permet pas d'identifier de manière unique les assemblages que vous générerez. - Modifier le code des classes du projet WINDEV :
- La classe doit avoir un constructeur sans arguments (c'est le seul constructeur utilisable par COM).
- Les membres statiques ne seront pas accessibles par COM.
- Les méthodes surchargées sont renommées dans COM.
- Dans l'assistant de génération d'assemblage .NET, sélectionner les options suivantes :
- Cocher "Accessible par COM".
- Spécifier l'emplacement du fichier snk précédemment créé.
- Copier l'assemblage généré dans le répertoire des assemblages partagés de Windows :
- Copier l'assemblage dans le répertoire "c:\Windows\Assembly".
- Copier la librairie wd300net.dll dans le répertoire "c:\Windows\Assembly" (sinon l'instanciation de l'objet COM échouera avec l'erreur "fichier introuvable à l'emplacement spécifié").
- Vérifier que la wd300vm.dll se trouve dans un répertoire du PATH.
Remarque : A partir de Windows Vista, si l'UAC est activé vous pouvez obtenir une erreur du type "Accés refusé" lors de la copie dans le répertoire "c:\Windows\Assembly". Dans ce cas : - lancez le programme "Invite de commande" (cmd.exe) en tant qu'administrateur.
- utilisez l'utilitaire "gacutil". Exemple : gacutil.exe -I "c:\Mes Projets\Mon Projet\Exe\MonAssemblage.dll".
Utiliser un assemblage dans un programme C++ Pour utiliser un assemblage dans un programme C++ : - Importer l'assemblage : "regasm MonAssemblage.DLL /tlb:MonAssemblage.tlb".
- Utiliser le fichier tlb généré dans le projet C++.
- Recompiler le projet C++.
Attention : Ces opérations doivent être renouvelées à chaque changement de GUID des interfaces
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|