IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[VB.Net 1.1] Comment écrire une dll ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 63
    Par défaut [VB.Net 1.1] Comment écrire une dll ?
    Bonsoir,

    je voudrais savoir comment créer une dll en vb dotnet 2003 qui fournit des données en retour de son execution et récupérer ces données dans un programme tiers en vb6, donc comment appeler cette dll, lui passer les paramètres et récupérer les datas en retour.
    Même question mais les données sont à récupérer dans un programme vb dotnet 2003, donc comment appeler cette dll, lui passer les paramètres
    et récupérer les datas en retour.
    Je ne peux passer pas ni par un service ou un webservice.

    Si vous aviez un exemple ce code même basique pour créer cette dll et l'exploiter dans les deux langages me permettrait de m'orienter dans la bonne direction.

    Je troube beaucoup d'article pour en créer en C mais rien en VB !!!

    d'avance merci beaucoup.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Pour créer une DLL en .NET, il te suffit de créer un projet de type Class Library

  3. #3
    Membre confirmé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 63
    Par défaut suite après divers tests
    Bonsoir et merci,
    c'est ce vers quoi je mettais orienté mais j'ai un problème avec VB6

    Voici par exemple le code de ma classe dotnet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Class Class1
        Public Function mafonction(ByVal montexte As String) As String
            mafonction = montexte
        End Function
    End Class
    dans la page de propriété de la classe item "Génération" je coche "Inscrire pour COM Interop" comme indiqué dans la
    doc pour exploiter dans VB6 (créer une TLB). J'ai essayé sans la cocher mais j'ai le même phénomène sous VB6, voir plus loin.

    Dans mon projet dotnet j'ajoute dans l'explorateur de solution ma classe et dans mon code par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim retour As ClassLibrary1.Class1
      retour = New ClassLibrary1.Class1
      MsgBox(retour .mafonction("ça marche"))
    End Sub
    tout est OK et m'affiche bien une fenêtre "ça marche".
    De plus j'ai bien dans mon explorateur d'objets ma classe avec son membre "mafonction".

    En revanche dans mon projet VB6, on ne peut ajouter une reference que pour mafonction.tlb, si j'essaye avec mafonction.dll
    j'ai le message "Impossible d'ajouter une référence au fichier spécifié", admettons.

    voici le code me mon projet VB6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    Private Declare Function cestmafonction Lib "ClassLibrary1.dll" Alias "mafonction" (ByVal montexte As String) As String
     
    Private Sub Form_Load()
    Dim retour As String
    retour = cestmafonction("ça marche")
    MsgBox retour 
    End
    End Sub
    j'ai comme erreur d'exécution la numéro 453
    Point d'entrée mafonction d'une DLL introuvable dans ClassLibrary1.dll.
    Effectivement j'ai bien dans mon explorateur d'objets ma classe mais pas son membre "mafonction".
    Que faire ?? problème de la classe (mais elle fonctionne sous dotnet 2003) ? faut-il y ajouter quelquechose afin
    que cela tourne sous VB6 ?

    Je précise que le tout est sur la même machine donc pas de manque du framework, j'ai essayé sur une autre machine sans framework
    et là j'avais des messages d'erreur que j'ai résolu en mettant le framework.

    En cherchant j'ai vu qu'avec le "C" il faut rajouter "void __export" et autre chose quelque part mais qu'en VB c'est inutile.

    Je ne sais plus où chercher ?

    D'avance merci

  4. #4
    Membre expérimenté Avatar de ShadowTzu
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Par défaut
    il faut ajouter au dessus de ta class:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <ClassInterface(ClassInterfaceType.AutoDual)> _
    Public Class Prout
    [...]
    enssuite tu enregistre ta dll

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/01/2008, 14h25
  2. Comment faire apelle à une DLL ?
    Par Chikh001 dans le forum C++
    Réponses: 1
    Dernier message: 01/10/2007, 15h38
  3. Réponses: 4
    Dernier message: 15/06/2007, 15h08
  4. Réponses: 4
    Dernier message: 20/10/2006, 16h19
  5. Comment sortir d'une dll ?
    Par Fred007 dans le forum Langage
    Réponses: 3
    Dernier message: 19/02/2004, 08h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo