sebastien_carbini
Joined: 05 Jun 2007 Posts: 1 Location: LASAA/Ifremer
|
Posted: Tue Jun 05, 2007 7:53 am Post subject: Utiliser une dll compilée sous Cygwin avec TNPC |
|
|
Bonjour,
Je suis arrivé récemment au LASAA de l'Ifremer et j'essaye d'intégrer à TNPC des algorithmes développés en C sous linux.
Pour cela, je compile une dll sous cygwin et j'essaye d'appeler une fonction de la dll depuis visual basic sous visilog mais dès l'appel tout se bloque et visilog ne répond plus.
Afin de simplifier au maximum, la dll (seb.dll) ne contient qu'une fonction (sebadd) qui effectue une addition entre deux entiers. Depuis microsoft visual C++ express 2005, j'ai créé un executable qui utilise la fonction de la dll avec succès à condition de charger au préalable la dll de cygwin (cygwin1.dll). Mais depuis visual basic tout se fige dès l'appel à la dll (sans renvoyer de message d'erreur). Voici le code visual basic utilisé (seul le premier message est affiché : "Initialisation de cygwin1.dll..." ):
| Code: |
Declare Function SebAdd Lib "seb.dll" Alias "sebadd@8" (a As Long, b As Long) As Long
Declare Function CywinInit Lib "cygwin1.dll" Alias "cygwin_dll_init" ()
Sub SeuillageFlst()
Dim res As Long
Dim a As Long
Dim b As Long
a = 14
b = 59
res = 0
Call MsgBox("Initialisation de cygwin1.dll...")
CywinInit
Call MsgBox("Cygwin.dll chargé correctement, Test de seb.dll...")
res = SebAdd(a, b)
Call MsgBox("Test de seb.dll : Res = " & res)
End Sub |
Avec une méthode similaire, j'ai réussi à appeler une fonction contenue dans une dll compilée avec visual C++ depuis visilog, mais j'ai besoin de compiler la dll sous cygwin pour pouvoir utiliser les algorithmes C linux.
Il semble qu'il existe une incompatibilité entre cygwin1.dll et visilog...
Est-ce que quelqu'un a déjà rencontré ce problème?
Avez vous une explication ou une piste à me proposer pour résoudre ce problème?
Cordialement,
Sébastien Carbini. |
|