none
Problème de publication d'un programme VB 2010 utilisant une DLL RRS feed

  • Discussion générale

  • Bonjour

    J'ai réalisé un programme qui utilise un outil permettant d'envoyer des trames en I2C. (produit TOTALPHASE AARDVARK I2C/SPI).

    Ce qui est bien c'est qu'il fournisse le DLL avec leur outil.

    Mon programme fonction parfaitement bien sur le poste ou il a été développé par contre, après une publication et l'installation sur un autre poste, une exception non générée dès que je j'utilise une commande faisant appel au code dans la DLL.

    Pour info : ma DLL à été copié manuellement sans windows/system32.

    Pouvez me venir en aide pour que ma publication fonctionne ?

     

    merci

     

    mercredi 23 mars 2011 06:50

Toutes les réponses

  • Bonjour,

    La DLL est utilisée comment ?

    Soit c'est une DLL com et il faut l'enregistrer (regsvr32). Soit ce n'est pas le cas et il est possible que la copier ne suffise pas (il n'y a pas une procédure d'installation de leur produit ? Le support du fabricant pourrait être plus approprié).

    Egalement il est préférable de toujours indiquer l'erreur exacte qui est de tout même le premier outil de diagnostic.

     


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    mercredi 23 mars 2011 11:38
    Modérateur
  • Bonjour

    voici le code :

    Imports TotalPhase
    
    
    Public Sub aadetect_run()
        TB_MessageAdaptateur.Text = "Recherche Aardverk adaptateurs ....." + vbCrLf
        Dim num As Long
        Dim devices(15) As UShort
        Dim handle As Long
    
        ' Find all the attached devices
        num = AardvarkApi.aa_find_devices(16, devices)
        If num > 0 Then
          TB_MessageAdaptateur.Text = TB_MessageAdaptateur.Text + "Trouvé :" & num & " adaptateur(s) " + vbCrLf
          Dim port As Integer
          Dim inuse As String
          Dim i As Long
    
          'Print the information on each device
          For i = 0 To num - 1
            port = devices(i)
            portAdaptateur = port
            'Determine if the device is in-use
            inuse = "  (Valide)"
            If port And AardvarkApi.AA_PORT_NOT_FREE Then
              inuse = "  (En cours d'utilisation)" + vbCrLf
              port = port And Not AardvarkApi.AA_PORT_NOT_FREE
            End If
    
            ' Display device port number, in-use status, and serial number
            TB_MessageAdaptateur.Text = TB_MessageAdaptateur.Text + "Port :" & port & inuse + vbCrLf
            GB_ProgFreq.Visible = True
            GB_Mesure.Visible = True
            GB_ProgGBF.Visible = True
    
          Next
        Else
          TB_MessageAdaptateur.Text = "Aucun adaptateur trouvé" + vbCrLf
        End If
    
        handle = AardvarkApi.aa_open(0)
    
        If (handle <= 0) Then
          TB_MessageAdaptateur.Text = "L'adaptateur AARDVARK I2C/SPI sélectionné n'est pas utilisable"
          Exit Sub
        End If
        handleFpga = handle
        'Configuration du handle en I2C
        Call AardvarkApi.aa_configure(handle, AardvarkConfig.AA_CONFIG_SPI_I2C)
    
        'Configuration I2C résistancers Pullup (2.2K) A DEFINIR
        'Call AardvarkApi.aa_i2c_pullup(handle, AardvarkApi.AA_I2C_PULLUP_BOTH)
        'Call AardvarkApi.aa_i2c_pullup(handle, AardvarkApi.AA_I2C_PULLUP_NONE)
        'Call AardvarkApi.aa_i2c_pullup(handle, AardvarkApi.AA_I2C_PULLUP_QUERY)
    
        ' Configuration de l'alimentation Adaptateur ou carte
        ' Call AardvarkApi.aa_target_power(handle, AardvarkApi.AA_TARGET_POWER_BOTH)
        ' Call AardvarkApi.aa_target_power(handle, AardvarkApi.AA_TARGET_POWER_NONE)
        ' Call AardvarkApi.aa_target_power(handle, AardvarkApi.AA_TARGET_POWER_QUERY)
    
        'Sélection du bitrate
        'Call AardvarkApi.aa_i2c_bitrate(handle, I2C_BITRATE)
    
    
    
      End Sub
    

    Le problème est sur les appels Aardvark

    Voici le détail de l'erreur

    Consultez la fin de ce message pour plus de détails sur l'appel du débogage
    juste-à-temps (JIT) à la place de cette boîte de dialogue.

    ************** Texte de l'exception **************
    System.TypeInitializationException: Une exception a été levée par l'initialiseur de type pour 'TotalPhase.AardvarkApi'. ---> System.DllNotFoundException: Impossible de charger la DLL 'aardvark': Le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)
       à TotalPhase.AardvarkApi.c_version()
       à TotalPhase.AardvarkApi..cctor()
       --- Fin de la trace de la pile d'exception interne ---
       à TotalPhase.AardvarkApi.aa_find_devices(Int32 num_devices, UInt16[] devices)
       à CommunicationFPGA.Form1.aadetect_run()
       à CommunicationFPGA.Form1.BP_rechercheAdaptateur_Click(Object sender, EventArgs e)
       à System.Windows.Forms.Control.OnClick(EventArgs e)
       à System.Windows.Forms.Button.OnClick(EventArgs e)
       à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       à System.Windows.Forms.Control.WndProc(Message& m)
       à System.Windows.Forms.ButtonBase.WndProc(Message& m)
       à System.Windows.Forms.Button.WndProc(Message& m)
       à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Assemblys chargés **************
    mscorlib
        Version de l'assembly : 4.0.0.0
        Version Win32 : 4.0.30319.1 (RTMRel.030319-0100)
        CodeBase : file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
    ----------------------------------------
    CommunicationFPGA
        Version de l'assembly : 1.0.0.0
        Version Win32 : 1.0.0.0
        CodeBase : file:///C:/Users/administrateur/AppData/Local/Apps/2.0/QJY91H2W.7VW/6N3W98ZP.VPL/comm..tion_b17aa7753c5b28a9_0001.0000_ef93db46aef0193e/CommunicationFPGA.exe
    ----------------------------------------
    Microsoft.VisualBasic
        Version de l'assembly : 10.0.0.0
        Version Win32 : 10.0.30319.1 built by: RTMRel
        CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
    ----------------------------------------
    System
        Version de l'assembly : 4.0.0.0
        Version Win32 : 4.0.30319.1 built by: RTMRel
        CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Core
        Version de l'assembly : 4.0.0.0
        Version Win32 : 4.0.30319.1 built by: RTMRel
        CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
    ----------------------------------------
    System.Windows.Forms
        Version de l'assembly : 4.0.0.0
        Version Win32 : 4.0.30319.1 built by: RTMRel
        CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System.Drawing
        Version de l'assembly : 4.0.0.0
        Version Win32 : 4.0.30319.1 built by: RTMRel
        CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    System.Configuration
        Version de l'assembly : 4.0.0.0
        Version Win32 : 4.0.30319.1 (RTMRel.030319-0100)
        CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Xml
        Version de l'assembly : 4.0.0.0
        Version Win32 : 4.0.30319.1 built by: RTMRel
        CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    System.Runtime.Remoting
        Version de l'assembly : 4.0.0.0
        Version Win32 : 4.0.30319.1 (RTMRel.030319-0100)
        CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
    ----------------------------------------
    mscorlib.resources
        Version de l'assembly : 4.0.0.0
        Version Win32 : 4.0.30319.1 (RTMRel.030319-0100)
        CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_fr_b77a5c561934e089/mscorlib.resources.dll
    ----------------------------------------
    aardvark_net
        Version de l'assembly : 0.0.0.0
        Version Win32 : 0.0.0.0
        CodeBase : file:///C:/Users/administrateur/AppData/Local/Apps/2.0/QJY91H2W.7VW/6N3W98ZP.VPL/comm..tion_b17aa7753c5b28a9_0001.0000_ef93db46aef0193e/aardvark_net.DLL
    ----------------------------------------
    System.Windows.Forms.resources
        Version de l'assembly : 4.0.0.0
        Version Win32 : 4.0.30319.1 built by: RTMRel
        CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_fr_b77a5c561934e089/System.Windows.Forms.resources.dll
    ----------------------------------------

    ************** Débogage JIT **************
    Pour activer le débogage juste-à-temps (JIT), le fichier de configuration pour cette
    application ou cet ordinateur (machine.config) doit avoir la valeur
    jitDebugging définie dans la section system.windows.forms.
    L'application doit également être compilée avec le débogage
    activé.

    Par exemple :

    <configuration>
        <system.windows.forms jitDebugging="true" />
    </configuration>

    Lorsque le débogage juste-à-temps est activé, les exceptions non gérées
    seront envoyées au débogueur JIT inscrit sur l'ordinateur
    plutôt que d'être gérées par cette boîte de dialogue. 

     

    merci

     

    mercredi 23 mars 2011 12:37
  • Bonjour,

     

    Apparemment, votre dll n’est pas enregistrée. Essayez de l’enregistrer, comme M. Scribe vous a dit. Sinon, vous pouvez aussi le copier dans le répertoire de votre application. Je vous remercie de nous tenir au courant avec votre progrès.

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     


    Suivez MSDN sur Twitter 

    jeudi 24 mars 2011 12:12
  • Bonjour

    Voici comment j'ai résolu mon problème.

    J'ai copier ma dll aardvark dans windows\system32

    et j'exécute un regsvr32

    Windows7 carge bien la dll mais j'ai un message d'avertissement de regsvr32 :

    Le module <<aardvark.dll>> à été chargé, mais le point d'entrée DLLRegisterServeur est introuvable.

    Vérifier que aardvark.dll est un fichier dll ou ocx valide puis rééssayer.

    Malgré ce message mon soft fonctionne.

    Auriez vous une piste ?

    merci

     

     

    lundi 28 mars 2011 06:06
  • L'enregistrement affiche un message d'erreur car ce n'est pas une DLL COM et l'enregistrement n'était donc pas nécessaire.

    Le 1er message semblait indiquer que la DLL était déjà dans system32 mais semble y avoir été recopiée à nouveau. Je pense que soit la DLL n'était pas dans system32, soit ce n'était pas la bonne, soit elle s'appuyait sur une autre DLL qui a été copiée elle aussi dans system32.


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    lundi 28 mars 2011 08:52
    Modérateur
  • Bonjour,

     

    Basiflour, avez-vous réussi à progresser avec l’investigation en suivant ces pistes ?

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     


    Suivez MSDN sur Twitter 

    mercredi 30 mars 2011 12:43
  • Bonjour

    Dans les références de mon projet, je fait appel à ma référence aardvark_net.dll.

    Cette DLL doit être sous la racine de mon exécutable pour que cela fonction et je pense que cette référence aardvark_net.dll fait appel à la dll aardvark.dll qui doit être dans le système32 et chargée.

     

    Merci pour votre interêt

     

    Basiflou

    lundi 4 avril 2011 15:14