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.