OVH Cloud OVH Cloud

Appel de DLL

3 réponses
Avatar
Daniel AUBRY
Bonsoir à tous,

je crée pour la première fois une DLL pour y stocker des fonctions utilisées
souvent.
Par exemple : le numéro de semaine, un jour est-il férié, etc...
Une fois la DLL créée j'essaie de l'appeler depuis un programme :

Private Declare Function JourFerie Lib "FonctionsVB.dll" (DateTest) As
Boolean

Private Sub TestJourFerie_Click()
MsgBox JourFerie(SaisieDate.Value)
End Sub

et en retour j'ai ceci :
Erreur d'execution 453
Point d'entrée JourFerie d'une DLL introuvable dans FonctionsVB.dll

L'aide VB ne m'a pas renseigné sur le sujet.
Quelqu'un saura t-il me dépanner ?
D'avance, merci

Dany

3 réponses

Avatar
ng
Salut,

Les DLLs VB sont (en standart, sans plugin vbAdvance ou autre) des DLLs COM
et non des DLLs API Classiques. Il faut donc le utiliser comme des classes
(elle doivent étre au préalable enregistrée via regsvr32) :

'//Early binding, une ref vers le DLL est obligatoire (attention pr des
raisons de compatibilité entre les versions, il est conseillé de compiler la
DLL avec une compatibilité binaire activée).
Dim oClasse As MaDLL.MaClasse
Set oClasse = New MaDLL.MaClasse
Call MsgBox(oClasse.MaFonction(MonParam)
Set oClasse = Nothing

'//Late binding
Dim oClasse As Object
Set oClasse = CreateObject("MaDLL.MaClasse")
Call MsgBox(oClasse.MaFonction(MonParam)
Set oClasse = Nothing

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


Daniel AUBRY wrote:
Bonsoir à tous,

je crée pour la première fois une DLL pour y stocker des fonctions
utilisées souvent.
Par exemple : le numéro de semaine, un jour est-il férié, etc...
Une fois la DLL créée j'essaie de l'appeler depuis un programme :

Private Declare Function JourFerie Lib "FonctionsVB.dll" (DateTest) As
Boolean

Private Sub TestJourFerie_Click()
MsgBox JourFerie(SaisieDate.Value)
End Sub

et en retour j'ai ceci :
Erreur d'execution 453
Point d'entrée JourFerie d'une DLL introuvable dans FonctionsVB.dll

L'aide VB ne m'a pas renseigné sur le sujet.
Quelqu'un saura t-il me dépanner ?
D'avance, merci

Dany


Avatar
Daniel AUBRY
Salut,
si j'ai bien compris, il faut que j'abandonne mon idée première et que je me
contente d'un module que j'utiliserai dans tous mes projets ?

"ng" a écrit dans le message de
news:
Salut,

Les DLLs VB sont (en standart, sans plugin vbAdvance ou autre) des DLLs


COM
et non des DLLs API Classiques. Il faut donc le utiliser comme des classes
(elle doivent étre au préalable enregistrée via regsvr32) :

'//Early binding, une ref vers le DLL est obligatoire (attention pr des
raisons de compatibilité entre les versions, il est conseillé de compiler


la
DLL avec une compatibilité binaire activée).
Dim oClasse As MaDLL.MaClasse
Set oClasse = New MaDLL.MaClasse
Call MsgBox(oClasse.MaFonction(MonParam)
Set oClasse = Nothing

'//Late binding
Dim oClasse As Object
Set oClasse = CreateObject("MaDLL.MaClasse")
Call MsgBox(oClasse.MaFonction(MonParam)
Set oClasse = Nothing

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


Daniel AUBRY wrote:
> Bonsoir à tous,
>
> je crée pour la première fois une DLL pour y stocker des fonctions
> utilisées souvent.
> Par exemple : le numéro de semaine, un jour est-il férié, etc...
> Une fois la DLL créée j'essaie de l'appeler depuis un programme :
>
> Private Declare Function JourFerie Lib "FonctionsVB.dll" (DateTest) As
> Boolean
>
> Private Sub TestJourFerie_Click()
> MsgBox JourFerie(SaisieDate.Value)
> End Sub
>
> et en retour j'ai ceci :
> Erreur d'execution 453
> Point d'entrée JourFerie d'une DLL introuvable dans FonctionsVB.dll
>
> L'aide VB ne m'a pas renseigné sur le sujet.
> Quelqu'un saura t-il me dépanner ?
> D'avance, merci
>
> Dany




Avatar
François Picalausa
Hello,

A toi de voir si tu préfère ajouter un module ou une référence à la dll...
Les deux solutions ont des avantages et des inconvénients (redistribution de
la dll, mais c'est un bout de code qu'il ne faut pas à chaque fois
recompiler, ...)

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com

"Daniel AUBRY" a écrit dans le message de
news:4133a173$0$29666$
Salut,
si j'ai bien compris, il faut que j'abandonne mon idée première et
que je me contente d'un module que j'utiliserai dans tous mes projets
?