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 :

Problème de DLL sans composant COM


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Problème de DLL sans composant COM
    Bonjour

    J'ai un projet de dialogué avec une base de donnée d'un fournisseur.

    le fournisseur me fourni la DLL (AOBTrans.dll) et une partie de la trame du code (avec les openconnexion, closeconnexion, writedataTable ...)

    je travail en VB.net et que je n'arrive pas à referencer la dll dans Visual Studio, il me dit que la DLL n'a pas pu être ajoutée. Assurez-vous que le fichier est accessible et qu'il s'agit d'un assembly valide ou d'un composant COM.


    Voici un exemple pour ouvrir une connexion:

    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
    39
    40
    41
    42
     
      Declare Function OpenAOBTrans Lib "AOBTrans.dll" (ByVal strParam As String, ByVal strDeviceNo As String, ByVal strAddress As String, ByVal iProtocol As Long, ByVal iCharset As Long, ByVal strTagFileName As String) As Long
        Declare Function CloseAOBTrans Lib "AOBTrans.dll" () As Long
        Declare Sub SetCRChar Lib "AOBTrans.dll" (ByVal strCRChar As String)
        Declare Sub SetInputDir Lib "AOBTrans.dll" (ByVal strInputDir As String)
        Declare Sub SetOutputDir Lib "AOBTrans.dll" (ByVal strOutputDir As String)
        Declare Sub SetErrorDir Lib "AOBTrans.dll" (ByVal strOutputDir As String)
        Declare Sub SetDisplayErrorMode Lib "AOBTrans.dll" (ByVal iDisplayError As Long)
     
     
    Sub OpenCommunication_AOBTrans()
     
            Dim strAddress As String
     
            'Configure directories
            SetInputDir("C:\\AOBTrans\\Input") '
            SetOutputDir("C:\\AOBTrans\\Output")
            SetErrorDir("C:\\AOBTrans\\Error")
     
            'Display error messages
            SetDisplayErrorMode(1)
     
            'configure timeout for the connection to 4 s
            SetConnectionTimeout(4000)
     
            'Open comm
            strAddress = "192.168.1.3" 'CB_DLLEthernet.Text
            If (strAddress = "") Then
                MsgBox("Please select an address !")
                Exit Sub
            End If
     
            If (OpenAOBTrans("IPC", "1", strAddress, 0, 0, "table.csv") = -1) Then
                MsgBox("Error when opening socket!")
                CloseAOBTrans()
                Exit Sub
            End If
     
            'Selects pipe as carriage return character
            SetCRChar("|")
     
        End Sub

    Comment referencer ma dll dans Visual Studio ?
    Comment faire marché mon code ?

    Merci de votre aide

  2. #2
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Le fournisseur de la dite dll doit pouvoir mieux te renseigner et surement le seul capable de le faire.
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Une DLL qui exporte des fonctions n'a pas à être référencée; on ne référence que les assemblies .Net, ce qui n'est -manifestement- pas le cas ici.

    Tu dois utiiser l'attribut DllImport sur les déclarations de fonctions de la DLL.

    De plus, dans ton cas, elle doit être sur le path de ton consommateur ou dans un path accessible référencé dans la commande Path de l'environnement.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Salut Bluedeep

    Merci pour ta reponse, mais j'ai pas tous compris !!!

    "Tu dois utiiser l'attribut DllImport sur les déclarations de fonctions de la DLL."
    Je ne sais pas trop comment faire un DllImport !!!

    Ma Dll je l'ai mis dans mon projet avec un copier / coller, elle se trouve à coté de mes forms et modules.

    Par contre elle est, je pense reconnu car si elle n'est pas dans le projet ou avec un nom different, j'ai un bug sur cette ligne : "SetDisplayErrorMode(1)", sinon pas de bug, il y a d'autre bug après ...


    autre ligne que je ne comprend pas dans ton message, l'histoire de path
    De plus, dans ton cas, elle doit être sur le path de ton consommateur ou dans un path accessible référencé dans la commande Path de l'environnement.

    merci de m'aider encore un peu

Discussions similaires

  1. Problème de compatibilité entre composant COM et 64 bits
    Par Raymonde dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 17/09/2012, 18h05
  2. Problème dans un projet ATL COM avec DLL et MFC.
    Par jamais34 dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 03/10/2007, 19h03
  3. [VB] Problème composants COM Word
    Par Vince dans le forum VBA Word
    Réponses: 5
    Dernier message: 08/12/2005, 10h18
  4. Réponses: 3
    Dernier message: 01/08/2005, 21h32
  5. conteneur de la STL (problème avec DLL et COM)
    Par moldavi dans le forum MFC
    Réponses: 8
    Dernier message: 25/07/2005, 22h43

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