OVH Cloud OVH Cloud

VB et DLL C

2 réponses
Avatar
Non Compos Mentis
Bonjour,

La question a déjà été posé dans les news mais je n'ai pas encore
trouvé mon bonheur

Je veux utiliser une dll créée par gcc sous cygwin depuis excel
je créee la dll avec __stdcall et __declspec(dllexport)
gcc --shared dll.o -o dll.dll

Et sous VB

Declare Function jeanpaul Lib "dll" Alias "tof@4" (x As Single) As
Single

Dans la pratique, ca marche pas sous excel (VALEUR)

Si quelqu'un a une solution magique ?

Merci
Fred

2 réponses

Avatar
Remi Thomas
Non Compos Mentis wrote:
Bonjour,

La question a déjà été posé dans les news mais je n'ai pas encore
trouvé mon bonheur

Je veux utiliser une dll créée par gcc sous cygwin depuis excel
je créee la dll avec __stdcall et __declspec(dllexport)
gcc --shared dll.o -o dll.dll

Et sous VB

Declare Function jeanpaul Lib "dll" Alias "" (x As Single) As
Single

Dans la pratique, ca marche pas sous excel (VALEUR)

Si quelqu'un a une solution magique ?




Ecrire un wrapper C++ qui:
- soit l'expose depuis une autre DLL qui elle fonctionne
- soit l'expose comme ActiveX

Rémi

--
Rémi Thomas - MVP Visual Studio .NET
Développeur Windows indépendant
http://www.xtware.com/cv
Avatar
manuelleclerc
[ j'ai essayé de répondre par mail à l'adresse despamée,
mais le monsieur n'a pas l'air de relever son courrier ]

Non Compos Mentis a écrit :

Je veux utiliser une dll créée par gcc sous cygwin depuis excel
je créee la dll avec __stdcall et __declspec(dllexport)
gcc --shared dll.o -o dll.dll

Et sous VB

Declare Function jeanpaul Lib "dll" Alias "" (x As Single) As
Single

Dans la pratique, ca marche pas sous excel (VALEUR)

Si quelqu'un a une solution magique ?



Essaye d'utiliser sous VB l'API Win32 LoadLibrary, puis
l'API GetProcAddress. Avec l'API GetLastError, tu sauras
pour quelle raison les APIs échouent. Peut être ta DLL
n'est-elle pas chargeable par le processus Excel là où elle
est (problème de path). Peut être as-tu un problème de
"décoration" du nom de la fonction.

Télécharge un outils d'analyse de DLL. Pax exemple, sur
http://www.dependencywalker.com/
Avec un outils de ce genre, tu sauras comment le nom de
ta fonction exportée a peut être été "décoré" par gcc.

Simple curiosité :-) pourquoi veux-tu charger une DLL à
toi, depuis VB, dans Excel. As-tu entendu parler de
"fonction.appelante" ?

manuel leclerc
--
<morganj> 0 is false and 1 is true, correct?
<alec_eso> 1, morganj
<morganj> bastard.