iToons
Messages postés2Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 9 juin 2003
-
9 juin 2003 à 02:31
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 2016
-
9 juin 2003 à 10:19
Bonjour,
J'aimerai créer une dll (en VB6) avec un certain nombre de fonction utilisables par un exe (toujours VB6) qui utiliserait des des déclarations du type 'Public Declare Function Additionne Lib "helloWorld.dll" Alias "main" (ByVal a As Long, ByVal b As Long) As Long'.
Est-ce possible sans enregistrer la dll avec regsvr32 ?
iToons
Messages postés2Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 9 juin 2003 9 juin 2003 à 02:42
J'oubliai : j'ai essayé avec les codes suivants :
'*** <DANS LA DLL> ***'
'*** <module1.bas> ***'
Public function stupidAddition (ByVal a As Long, ByVal b As Long) As Long
stupidaddition = a - (0 - b)
End function
'*** </module1.bas> ***'
'*** </DANS LA DLL> ***'
'*** <DANS L'EXECUTABLE> ***'
'*** <module1.bas> ***'
Public Declare Function Additionne Lib "helloWorld.dll" Alias "stupidAddition" (ByVal a As Long, ByVal b As Long) As Long
'*** </module1.bas> ***'
'*** <form1.frm> ***'
Private Sub Command1_Click()
Call MsgBox(Additionne(1, 3))
End Sub
'*** </form1.frm> ***'
'*** </DANS L'EXECUTABLE> ***'
Je compile ma dll en helloWorld.dll (les bonne vieilles habitudes... ;) , puis je lance le projet exécutable en pas à pas... "point d'entrée 'stupidAddition' introuvable dans helloWorld.dll !"
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 9 juin 2003 à 10:19
salut
bon deja :
public declare ... c'est pas pour des dll crée avec VB c pour des dll faitent en C/C++
ensuite :
VB crée des dll ActiveX donc il faut les enregistrer avec regsvr32 et de plus il faut ajouter la référence à ton projet exe ou par createobject ou getobject
enfin dasn une dll seule les modules de classes sont public
conclusion :
tu ne peux pas faire une dll non ActiveX avec VB donc pas "declare"