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 :

Réalisation d'une dll et difficultées


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Par défaut Réalisation d'une dll et difficultées
    Bonjour,

    Je cherche à réaliser une dll qui sera utilisée par une dizaine de programmes sous Vb2008, elle semble fonctionner correctement de la réception des données (TreeDossierGuide), du traitement (lecture d'un fichier InfoFile.xml, création d'un tableau TexteInfo) à la création d'un indicateur de réussite ou d'échec (Message).

    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Imports System.Xml
    Namespace Chaine_Utilitaire
     
        Public Class ManipChaine
     
            Public Shared Sub Lire_la_base_des_Messages(ByVal TreeDossierGuide As String, ByVal Message As Boolean)
                ' erreur code=09
     
                Dim Doc As New XmlDocument(), node As XmlNode
                Dim WorkString As String, cr As Char, lf As Char, Chemin As String
                Dim Cle As New List(Of String), TexteInfo As New List(Of String)
     
                If Not My.Computer.FileSystem.FileExists(TreeDossierGuide + "\Ressources\InfoFile.xml") Then
                    Message = False
                End If
                Chemin = TreeDossierGuide + "\Ressources\InfoFile.xml"
                Dim Reader As New XmlTextReader(Chemin)
     
                While Reader.EOF = False
                    Reader.Read()
                    If Reader.Name.Equals("message") Then
                        node = Doc.ReadNode(Reader)
                        Cle.Add(node.Attributes("type").Value.ToString)
                        WorkString = node.InnerText.ToString
                        WorkString = Replace(WorkString, cr, "")
                        WorkString = Replace(WorkString, lf, "")
     
                        TexteInfo.Add(WorkString)
                    End If
                End While
                Reader.Close()
     
                Message = True
            End Sub
     
        End Class
     
        End Namespace
    Par contre dans le programme appelant par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chaine_Utilitaire.Chaine_Utilitaire.ManipChaine.Lire_la_base_des_Messages(TreeDossierGuide, MessageOK)
    je n'arrive pas à recevoir la valeur de retour MessageOK.

    Lors de l'appel par le programme principal (qui voit la dll par la déclaration Imports Chaine_Utilitaire), la valeur de MessageOK est False, puis aprés le traitement dans la dll la valeur de Message est positionnée à True.

    Que faut il faire pour que MessageOK (déclaré dans Public Class Form1 Dim MessageOK As Boolean), se retrouve à True au retour?

    Merci de vos bons tuyaux.

  2. #2
    Membre chevronné Avatar de _PascalC_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 220
    Par défaut
    salut, il faut que tu modifie la déclaration de ta méthode "Lire_la_base_des_Messages" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public Shared Sub Lire_la_base_des_Messages(ByVal TreeDossierGuide As String, ByRef Message As Boolean)
    (byref au lieu de byval pour le param "message")

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Par défaut
    Citation Envoyé par _PascalC_ Voir le message
    salut, il faut que tu modifie la déclaration de ta méthode "Lire_la_base_des_Messages" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public Shared Sub Lire_la_base_des_Messages(ByVal TreeDossierGuide As String, ByRef Message As Boolean)
    (byref au lieu de byval pour le param "message")
    Bonjour et merci,
    J'aurai mis ma tête à couper que le ByRef (que j'ai essayé) faisait planter mon appel à la dll. J'ai malgré tout suivi ton conseil, et un grand merci puisque cela marche.
    .

    Bye et à +

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    sinon faut faire une fonction plutot qu'un sub ... ca sert à ca
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/10/2009, 16h19
  2. Comment réaliser une DLL indépendante
    Par a_lincoln54 dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/05/2008, 11h02
  3. [C#] Réalisation d'une dll compatible WinXP/WindowsMobile
    Par alncool dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 16/04/2007, 11h05
  4. [JNI] Difficultés pour utiliser une DLL
    Par etiennegaloup dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 15/08/2005, 21h29
  5. Equivalent à ExeName pour une DLL
    Par Smortex dans le forum Langage
    Réponses: 7
    Dernier message: 16/07/2002, 21h07

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