vendredi, décembre 12, 2003

PaP - Créer un objet COM en VB.NET

 


[- Avec une utilisation minimale de Visual Studio.Net]
[- Il est conseillé d'utiliser la console lancée depuis "Invite de commandes Visual Studio.Net", car les variables d'environnement sont configurées (path,etc..)]


1.Environnement de travail
- Créer un projet Visual Studio.NET
Projet Visual Basic / Bibliothèque de classe (type du projet:ClassLibrary, nom du projet:sans importance)

- Ajouter un nouvel élément au projet (type élément:COM Class) (ex : maClasse)
- Effacer le fichier Class1.vb

2.Namespace
- Dans maClasse.vb , ajouter un Namespace (ex : monNamespace)


Namespace monNamespace
       ‘ tout le code du fichier
End Namespace


3.Importer
- Ajouter au début de maClasse.vb (avant le namespace)
        Imports Microsoft.VisualBasic

4.
Méthodes
- Retravailler la classe maClasse afin d’ajouter les méthodes de l’objet (ex : maFonctionTest)

Public Function maFonctionTest() As String
    return « hello from maFonctionTest »
End Function


5.Signature
- En mode console, générer un fichier de clé


>sn –k fichier.snk

- Editer le fichier Assembly.vb, à la fin du fichier
                  <Assembly: AssemblyKeyFileAttribute("fichier.snk")>
(éventuellement mettre le path complet vers le fichier.snk)


6.Importer
- Au début du fichier Assembly.vb,ajouter
Imports System
Imports System.Attribute


7.Compiler la DLL
- En mode console, en se plaçant dans le répertoire du projet

set assemblies=System.Web.Services.dll,System.Xml.dll [etc..] mettre ici toutes les références nécessaires
Il faut déterminer dans quelle DLL sont incluses les déclarations de type Import. On peut se servir de Visual Studio par exemple, en ajoutant une référence à la bibliothèque importer (menu "Références" dans l'explorateur de solutions) et consulter la propriété "Chemin d'accès".

- Compilation :
vbc *.vb /out:bin\nomFichier.dll /target:library /r:%assemblies%


8.Enregistrer la DLL
- En mode console, en se plaçant dans le répertoire du projet


RegAsm.exe bin\nomFichier.dll /tlb /codebase


9.Test de la DLL en vbscript


set obj = createobject("monNamespace.maClasse")
msgbox "Création objet OK"
msgbox obj.maFonctionTest ()
set obj = Nothing

Aucun commentaire: