none
les dll en vb.net RRS feed

  • Question

  • Salut les Pros! et tout le mondes ici

     

    Voici jutilise cette dll mais je crois que lors du montage de celle-ci j'ai du fair une erreur.

     

    Voici le code.

     

    Code Snippet

     

    Imports System

    Imports System.IO

    Imports System.Collections.Generic

    Imports System.Linq

    Imports System.Text

    Imports System.Xml

    Imports System.Security.Cryptography

     

    Public Class Pass

     

    Public password As String = "admin"

    Private Shared ReadOnly _instance As New Pass()

     

    Public Shared Function Instance() As Pass

      Return _instance

    End Function

     

    Public Function Encrypt(ByVal pwd As String) As String

      Dim encoder As New UTF8Encoding()

      Dim sha1hasher As New SHA1CryptoServiceProvider()

      Dim hashedDataBytes As Byte() = sha1hasher.ComputeHash(encoder.GetBytes(pwd))

      Return byteArrayToString(hashedDataBytes)

    End Function

     

    Public Function byteArrayToString(ByVal inputArray As Byte()) As String

      Dim output As New StringBuilder("")

      Dim i As Integer = 0

      While i < inputArray.Length

        output.Append(inputArray(i).ToString("X2"))

        System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)

      End While

      Return output.ToString()

    End Function

     

    ''''******* Creating XML File *******

    Public Sub CreateNewPassWord()

      Dim Doc As New XmlDocument()

      Dim mElement As XmlElement

      Dim mComment As XmlComment

      Dim xmldecl As XmlDeclaration

      mComment = Doc.CreateComment("Copywrite Daniel Morais 2008.")

      mElement = Doc.CreateElement("password")

      mElement.InnerText = Encrypt(password)

      Doc.AppendChild(mElement)

      xmldecl = Doc.CreateXmlDeclaration("1.0", Nothing, Nothing)

      Doc.InsertBefore(xmldecl, Doc.DocumentElement)

      Doc.InsertBefore(mComment, Doc.DocumentElement)

      Doc.Save("AppPwd.xml")

    End Sub

     

    ''''******* Reading XML File *******

    Public Sub ReadPWD()

      Dim reader As New XmlTextReader("AppPwd.xml")

      password = reader.ReadElementString()

      reader.Close()

    End Sub

     

    End Class

     

     

    Voila!  ce que je crois etre une erreur c'est que pour utiliser la dll

    je la place en references dans le projet puis pour obtenir les fonctions

     

    je dois placer la commande suivante

     

    pass.pass.instance().CreateNewPassWord()

     

    est-ce vraiment une erreur dans la façon de faire la dll Ou ...

     

    Merci si Quelqu'un peut m'aider
    lundi 15 décembre 2008 21:08

Réponses

  • Bonjour,

     

    Biche, sous Visual Basic les classes statiques sont en fait des "Modules".

    Il faut donc déclarer ce genre de classe comme ceci :

     

    Code Snippet

    Public Module Pass

    ...

    End Module

     

     

    Cordialement

    • Marqué comme réponse DanielMorais mercredi 3 juin 2009 21:41
    dimanche 21 décembre 2008 22:28
    Modérateur
  •  

    merci beaucoup

    pour cette reponse

     et en passant j'ai le meme probleme avec cette class en c#

    si je peut demander cela

     

    Merci encore

    • Marqué comme réponse DanielMorais mercredi 3 juin 2009 21:40
    lundi 22 décembre 2008 04:35

Toutes les réponses

  • Je ne suis pas sur de comprendre ta question, es-ce que tu obtiens une erreur quelconque? Si tu veux faire ce que je crois, déclare ta fonction en tant que static, cela devrait aidé, et tu vas pouvoir faire Pass.CreateNewPassWord()

     

    lundi 15 décembre 2008 21:33
    Modérateur
  • bonjour

     

    est - ce que la fonction que tu parle serait celle-ci

     

    Private Shared ReadOnly _instance As New Pass()

    a change en static

     

    Static Shared ReadOnly _instance As New Pass()

     si non faut expliquer  ma comprehention des classes et dll est est au tout début si tu voit ce que je veut dire

     

    Merci pour une reponse aussi rapide

     

     

     

    lundi 15 décembre 2008 22:56
  • Bonjour,

     

    Biche, sous Visual Basic les classes statiques sont en fait des "Modules".

    Il faut donc déclarer ce genre de classe comme ceci :

     

    Code Snippet

    Public Module Pass

    ...

    End Module

     

     

    Cordialement

    • Marqué comme réponse DanielMorais mercredi 3 juin 2009 21:41
    dimanche 21 décembre 2008 22:28
    Modérateur
  •  

    merci beaucoup

    pour cette reponse

     et en passant j'ai le meme probleme avec cette class en c#

    si je peut demander cela

     

    Merci encore

    • Marqué comme réponse DanielMorais mercredi 3 juin 2009 21:40
    lundi 22 décembre 2008 04:35