PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • 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++
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Présentation
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 :
  1. 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 "Programmes\Donnees\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.
  2. 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
  3. 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éé.
  4. 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 wdxxxnet.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 wdxxxvm.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++ :
Attention : Ces opérations doivent être renouvelées à chaque changement de GUID des interfaces :
  1. Importer l'assemblage : "regasm MonAssemblage.DLL /tlb:MonAssemblage.tlb".
  2. Utiliser le fichier tlb généré dans le projet C++.
  3. Recompiler le projet C++.
Version minimum requise
  • Version 9
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire