J'ai un probl=E8me pour passer des arguments dans une DLL=20
cr=E9=E9 sous VB et appel=E9e sous VBA d=E8s lors que les=20
arguments sont des "Type...End Type". Sachant que je=20
d=E9clare les "Type" sous VB et sous VBA. Une id=E9e?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent Jordi \(www.ezlogic.mc\)
Salut
A mon avis tu ne peux pas, en tout cas, penses aux byval...
@+
LJ
"Yves" a écrit dans le message de news:295301c47df9$54556db0$ J'ai un problème pour passer des arguments dans une DLL créé sous VB et appelée sous VBA dès lors que les arguments sont des "Type...End Type". Sachant que je déclare les "Type" sous VB et sous VBA. Une idée?
Salut
A mon avis tu ne peux pas, en tout cas, penses aux byval...
@+
LJ
"Yves" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:295301c47df9$54556db0$a401280a@phx.gbl...
J'ai un problème pour passer des arguments dans une DLL
créé sous VB et appelée sous VBA dès lors que les
arguments sont des "Type...End Type". Sachant que je
déclare les "Type" sous VB et sous VBA. Une idée?
A mon avis tu ne peux pas, en tout cas, penses aux byval...
@+
LJ
"Yves" a écrit dans le message de news:295301c47df9$54556db0$ J'ai un problème pour passer des arguments dans une DLL créé sous VB et appelée sous VBA dès lors que les arguments sont des "Type...End Type". Sachant que je déclare les "Type" sous VB et sous VBA. Une idée?
Yves
Ce serait curieux vu qu'en C++ çà marche très bien; je passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine----- Salut
A mon avis tu ne peux pas, en tout cas, penses aux
byval...
@+
LJ
"Yves" a écrit dans
le message de
news:295301c47df9$54556db0$ J'ai un problème pour passer des arguments dans une DLL créé sous VB et appelée sous VBA dès lors que les arguments sont des "Type...End Type". Sachant que je déclare les "Type" sous VB et sous VBA. Une idée?
.
Ce serait curieux vu qu'en C++ çà marche très bien; je
passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine-----
Salut
A mon avis tu ne peux pas, en tout cas, penses aux
byval...
@+
LJ
"Yves" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:295301c47df9$54556db0$a401280a@phx.gbl...
J'ai un problème pour passer des arguments dans une DLL
créé sous VB et appelée sous VBA dès lors que les
arguments sont des "Type...End Type". Sachant que je
déclare les "Type" sous VB et sous VBA. Une idée?
Ce serait curieux vu qu'en C++ çà marche très bien; je passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine----- Salut
A mon avis tu ne peux pas, en tout cas, penses aux
byval...
@+
LJ
"Yves" a écrit dans
le message de
news:295301c47df9$54556db0$ J'ai un problème pour passer des arguments dans une DLL créé sous VB et appelée sous VBA dès lors que les arguments sont des "Type...End Type". Sachant que je déclare les "Type" sous VB et sous VBA. Une idée?
.
ng
si bien sur on peux (passage en byref (cad pointeur), il suffit que le type (structure) soit déclaré en publique dans la classe.
-- 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/ http://apisvb.europe.webmatrixhosting.net/
Yves a écrit :
Ce serait curieux vu qu'en C++ çà marche très bien; je passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine----- Salut
A mon avis tu ne peux pas, en tout cas, penses aux byval...
@+
LJ
"Yves" a écrit dans le message de news:295301c47df9$54556db0$ J'ai un problème pour passer des arguments dans une DLL créé sous VB et appelée sous VBA dès lors que les arguments sont des "Type...End Type". Sachant que je déclare les "Type" sous VB et sous VBA. Une idée?
.
si bien sur on peux (passage en byref (cad pointeur), il suffit que le type
(structure) soit déclaré en publique dans la classe.
--
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/
http://apisvb.europe.webmatrixhosting.net/
Yves <anonymous@discussions.microsoft.com> a écrit :
Ce serait curieux vu qu'en C++ çà marche très bien; je
passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine-----
Salut
A mon avis tu ne peux pas, en tout cas, penses aux byval...
@+
LJ
"Yves" <anonymous@discussions.microsoft.com> a écrit dans le message
de news:295301c47df9$54556db0$a401280a@phx.gbl...
J'ai un problème pour passer des arguments dans une DLL
créé sous VB et appelée sous VBA dès lors que les
arguments sont des "Type...End Type". Sachant que je
déclare les "Type" sous VB et sous VBA. Une idée?
si bien sur on peux (passage en byref (cad pointeur), il suffit que le type (structure) soit déclaré en publique dans la classe.
-- 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/ http://apisvb.europe.webmatrixhosting.net/
Yves a écrit :
Ce serait curieux vu qu'en C++ çà marche très bien; je passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine----- Salut
A mon avis tu ne peux pas, en tout cas, penses aux byval...
@+
LJ
"Yves" a écrit dans le message de news:295301c47df9$54556db0$ J'ai un problème pour passer des arguments dans une DLL créé sous VB et appelée sous VBA dès lors que les arguments sont des "Type...End Type". Sachant que je déclare les "Type" sous VB et sous VBA. Une idée?
.
Yves
Merci pour la réponse mais je ne suis pas sûr de comprendre; Je passe mes arguments effectivement en Byref; Mes variables sont déclarées en "Type...End Type" à la fois sous VB (donc dans ma dll) et sous VBA. Je déclare ensuite sous le module VBA les Type en publique (l'appel de ma dll se fait en early-binding); Plus explicitement exemple de ce que je fais et qui ne marche pas :
'*** VB (Création Dll) (Dans une classe) Type Test x as double y as double End Type
Function MaFonction (Byref MonTest as Test) as double
'Calcul sur x et y
End Function
'*** VBA (Dans un module) Type Test x as double y as double End Type
Public MonTest as Test
Declare MaFonction Lib"" (Byref MonTest as Test) as Double
Sub Taux()
Dim oMonObjet as MonProjet.MaClasse Set oMonObjet = New MonProjet.MaClasse
var= oMonObjet.MaFonction(MonTest)
end Sub
Merci d'avance
-----Message d'origine----- si bien sur on peux (passage en byref (cad pointeur), il
suffit que le type
(structure) soit déclaré en publique dans la classe.
-- 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/ http://apisvb.europe.webmatrixhosting.net/
Yves a écrit :
Ce serait curieux vu qu'en C++ çà marche très bien; je passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine----- Salut
A mon avis tu ne peux pas, en tout cas, penses aux
byval...
@+
LJ
"Yves" a écrit
dans le message
de news:295301c47df9$54556db0$ J'ai un problème pour passer des arguments dans une DLL créé sous VB et appelée sous VBA dès lors que les arguments sont des "Type...End Type". Sachant que je déclare les "Type" sous VB et sous VBA. Une idée?
.
.
Merci pour la réponse mais je ne suis pas sûr de
comprendre;
Je passe mes arguments effectivement en Byref; Mes
variables sont déclarées en "Type...End Type" à la fois
sous VB (donc dans ma dll) et sous VBA. Je déclare ensuite
sous le module VBA les Type en publique (l'appel de ma dll
se fait en early-binding); Plus explicitement exemple de
ce que je fais et qui ne marche pas :
'*** VB (Création Dll) (Dans une classe)
Type Test
x as double
y as double
End Type
Function MaFonction (Byref MonTest as Test) as double
'Calcul sur x et y
End Function
'*** VBA (Dans un module)
Type Test
x as double
y as double
End Type
Public MonTest as Test
Declare MaFonction Lib"" (Byref MonTest as Test) as Double
Sub Taux()
Dim oMonObjet as MonProjet.MaClasse
Set oMonObjet = New MonProjet.MaClasse
var= oMonObjet.MaFonction(MonTest)
end Sub
Merci d'avance
-----Message d'origine-----
si bien sur on peux (passage en byref (cad pointeur), il
suffit que le type
(structure) soit déclaré en publique dans la classe.
--
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/
http://apisvb.europe.webmatrixhosting.net/
Yves <anonymous@discussions.microsoft.com> a écrit :
Ce serait curieux vu qu'en C++ çà marche très bien; je
passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine-----
Salut
A mon avis tu ne peux pas, en tout cas, penses aux
byval...
@+
LJ
"Yves" <anonymous@discussions.microsoft.com> a écrit
dans le message
de news:295301c47df9$54556db0$a401280a@phx.gbl...
J'ai un problème pour passer des arguments dans une DLL
créé sous VB et appelée sous VBA dès lors que les
arguments sont des "Type...End Type". Sachant que je
déclare les "Type" sous VB et sous VBA. Une idée?
Merci pour la réponse mais je ne suis pas sûr de comprendre; Je passe mes arguments effectivement en Byref; Mes variables sont déclarées en "Type...End Type" à la fois sous VB (donc dans ma dll) et sous VBA. Je déclare ensuite sous le module VBA les Type en publique (l'appel de ma dll se fait en early-binding); Plus explicitement exemple de ce que je fais et qui ne marche pas :
'*** VB (Création Dll) (Dans une classe) Type Test x as double y as double End Type
Function MaFonction (Byref MonTest as Test) as double
'Calcul sur x et y
End Function
'*** VBA (Dans un module) Type Test x as double y as double End Type
Public MonTest as Test
Declare MaFonction Lib"" (Byref MonTest as Test) as Double
Sub Taux()
Dim oMonObjet as MonProjet.MaClasse Set oMonObjet = New MonProjet.MaClasse
var= oMonObjet.MaFonction(MonTest)
end Sub
Merci d'avance
-----Message d'origine----- si bien sur on peux (passage en byref (cad pointeur), il
suffit que le type
(structure) soit déclaré en publique dans la classe.
-- 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/ http://apisvb.europe.webmatrixhosting.net/
Yves a écrit :
Ce serait curieux vu qu'en C++ çà marche très bien; je passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine----- Salut
A mon avis tu ne peux pas, en tout cas, penses aux
byval...
@+
LJ
"Yves" a écrit
dans le message
de news:295301c47df9$54556db0$ J'ai un problème pour passer des arguments dans une DLL créé sous VB et appelée sous VBA dès lors que les arguments sont des "Type...End Type". Sachant que je déclare les "Type" sous VB et sous VBA. Une idée?
.
.
ng
Salut,
Pas besoin de redeclarer ton type sous VBA, mets le simplement en public ds ta DLL :
Public Type Test x as double y as double End Type
-- 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/ http://apisvb.europe.webmatrixhosting.net/
Yves a écrit :
Merci pour la réponse mais je ne suis pas sûr de comprendre; Je passe mes arguments effectivement en Byref; Mes variables sont déclarées en "Type...End Type" à la fois sous VB (donc dans ma dll) et sous VBA. Je déclare ensuite sous le module VBA les Type en publique (l'appel de ma dll se fait en early-binding); Plus explicitement exemple de ce que je fais et qui ne marche pas :
'*** VB (Création Dll) (Dans une classe) Type Test x as double y as double End Type
Function MaFonction (Byref MonTest as Test) as double
'Calcul sur x et y
End Function
'*** VBA (Dans un module) Type Test x as double y as double End Type
Public MonTest as Test
Declare MaFonction Lib"" (Byref MonTest as Test) as Double
Sub Taux()
Dim oMonObjet as MonProjet.MaClasse Set oMonObjet = New MonProjet.MaClasse
var= oMonObjet.MaFonction(MonTest)
end Sub
Merci d'avance
-----Message d'origine----- si bien sur on peux (passage en byref (cad pointeur), il suffit que le type (structure) soit déclaré en publique dans la classe.
-- 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/ http://apisvb.europe.webmatrixhosting.net/
Yves a écrit :
Ce serait curieux vu qu'en C++ çà marche très bien; je passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine----- Salut
A mon avis tu ne peux pas, en tout cas, penses aux byval...
@+
LJ
"Yves" a écrit dans le message de news:295301c47df9$54556db0$ J'ai un problème pour passer des arguments dans une DLL créé sous VB et appelée sous VBA dès lors que les arguments sont des "Type...End Type". Sachant que je déclare les "Type" sous VB et sous VBA. Une idée?
.
.
Salut,
Pas besoin de redeclarer ton type sous VBA, mets le simplement en public ds
ta DLL :
Public Type Test
x as double
y as double
End Type
--
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/
http://apisvb.europe.webmatrixhosting.net/
Yves <anonymous@discussions.microsoft.com> a écrit :
Merci pour la réponse mais je ne suis pas sûr de
comprendre;
Je passe mes arguments effectivement en Byref; Mes
variables sont déclarées en "Type...End Type" à la fois
sous VB (donc dans ma dll) et sous VBA. Je déclare ensuite
sous le module VBA les Type en publique (l'appel de ma dll
se fait en early-binding); Plus explicitement exemple de
ce que je fais et qui ne marche pas :
'*** VB (Création Dll) (Dans une classe)
Type Test
x as double
y as double
End Type
Function MaFonction (Byref MonTest as Test) as double
'Calcul sur x et y
End Function
'*** VBA (Dans un module)
Type Test
x as double
y as double
End Type
Public MonTest as Test
Declare MaFonction Lib"" (Byref MonTest as Test) as Double
Sub Taux()
Dim oMonObjet as MonProjet.MaClasse
Set oMonObjet = New MonProjet.MaClasse
var= oMonObjet.MaFonction(MonTest)
end Sub
Merci d'avance
-----Message d'origine-----
si bien sur on peux (passage en byref (cad pointeur), il suffit que
le type (structure) soit déclaré en publique dans la classe.
--
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/
http://apisvb.europe.webmatrixhosting.net/
Yves <anonymous@discussions.microsoft.com> a écrit :
Ce serait curieux vu qu'en C++ çà marche très bien; je
passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine-----
Salut
A mon avis tu ne peux pas, en tout cas, penses aux byval...
@+
LJ
"Yves" <anonymous@discussions.microsoft.com> a écrit dans le
message de news:295301c47df9$54556db0$a401280a@phx.gbl...
J'ai un problème pour passer des arguments dans une DLL
créé sous VB et appelée sous VBA dès lors que les
arguments sont des "Type...End Type". Sachant que je
déclare les "Type" sous VB et sous VBA. Une idée?
Pas besoin de redeclarer ton type sous VBA, mets le simplement en public ds ta DLL :
Public Type Test x as double y as double End Type
-- 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/ http://apisvb.europe.webmatrixhosting.net/
Yves a écrit :
Merci pour la réponse mais je ne suis pas sûr de comprendre; Je passe mes arguments effectivement en Byref; Mes variables sont déclarées en "Type...End Type" à la fois sous VB (donc dans ma dll) et sous VBA. Je déclare ensuite sous le module VBA les Type en publique (l'appel de ma dll se fait en early-binding); Plus explicitement exemple de ce que je fais et qui ne marche pas :
'*** VB (Création Dll) (Dans une classe) Type Test x as double y as double End Type
Function MaFonction (Byref MonTest as Test) as double
'Calcul sur x et y
End Function
'*** VBA (Dans un module) Type Test x as double y as double End Type
Public MonTest as Test
Declare MaFonction Lib"" (Byref MonTest as Test) as Double
Sub Taux()
Dim oMonObjet as MonProjet.MaClasse Set oMonObjet = New MonProjet.MaClasse
var= oMonObjet.MaFonction(MonTest)
end Sub
Merci d'avance
-----Message d'origine----- si bien sur on peux (passage en byref (cad pointeur), il suffit que le type (structure) soit déclaré en publique dans la classe.
-- 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/ http://apisvb.europe.webmatrixhosting.net/
Yves a écrit :
Ce serait curieux vu qu'en C++ çà marche très bien; je passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine----- Salut
A mon avis tu ne peux pas, en tout cas, penses aux byval...
@+
LJ
"Yves" a écrit dans le message de news:295301c47df9$54556db0$ J'ai un problème pour passer des arguments dans une DLL créé sous VB et appelée sous VBA dès lors que les arguments sont des "Type...End Type". Sachant que je déclare les "Type" sous VB et sous VBA. Une idée?
.
.
ng
ReSalut,
Ton code VBA ne va pas ! Ce n'est pas des DLL API mais bien du COM :
Public MonTest as Test
Sub Taux()
Dim oMonObjet as MonProjet.MaClasse Set oMonObjet = New MonProjet.MaClasse
MsgBox oMonObjet.MaFonction(MonTest)
end Sub
-- 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/ http://apisvb.europe.webmatrixhosting.net/
Yves a écrit :
Merci pour la réponse mais je ne suis pas sûr de comprendre; Je passe mes arguments effectivement en Byref; Mes variables sont déclarées en "Type...End Type" à la fois sous VB (donc dans ma dll) et sous VBA. Je déclare ensuite sous le module VBA les Type en publique (l'appel de ma dll se fait en early-binding); Plus explicitement exemple de ce que je fais et qui ne marche pas :
'*** VB (Création Dll) (Dans une classe) Type Test x as double y as double End Type
Function MaFonction (Byref MonTest as Test) as double
'Calcul sur x et y
End Function
'*** VBA (Dans un module) Type Test x as double y as double End Type
Public MonTest as Test
Declare MaFonction Lib"" (Byref MonTest as Test) as Double
Sub Taux()
Dim oMonObjet as MonProjet.MaClasse Set oMonObjet = New MonProjet.MaClasse
var= oMonObjet.MaFonction(MonTest)
end Sub
Merci d'avance
-----Message d'origine----- si bien sur on peux (passage en byref (cad pointeur), il suffit que le type (structure) soit déclaré en publique dans la classe.
-- 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/ http://apisvb.europe.webmatrixhosting.net/
Yves a écrit :
Ce serait curieux vu qu'en C++ çà marche très bien; je passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine----- Salut
A mon avis tu ne peux pas, en tout cas, penses aux byval...
@+
LJ
"Yves" a écrit dans le message de news:295301c47df9$54556db0$ J'ai un problème pour passer des arguments dans une DLL créé sous VB et appelée sous VBA dès lors que les arguments sont des "Type...End Type". Sachant que je déclare les "Type" sous VB et sous VBA. Une idée?
.
.
ReSalut,
Ton code VBA ne va pas ! Ce n'est pas des DLL API mais bien du COM :
Public MonTest as Test
Sub Taux()
Dim oMonObjet as MonProjet.MaClasse
Set oMonObjet = New MonProjet.MaClasse
MsgBox oMonObjet.MaFonction(MonTest)
end Sub
--
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/
http://apisvb.europe.webmatrixhosting.net/
Yves <anonymous@discussions.microsoft.com> a écrit :
Merci pour la réponse mais je ne suis pas sûr de
comprendre;
Je passe mes arguments effectivement en Byref; Mes
variables sont déclarées en "Type...End Type" à la fois
sous VB (donc dans ma dll) et sous VBA. Je déclare ensuite
sous le module VBA les Type en publique (l'appel de ma dll
se fait en early-binding); Plus explicitement exemple de
ce que je fais et qui ne marche pas :
'*** VB (Création Dll) (Dans une classe)
Type Test
x as double
y as double
End Type
Function MaFonction (Byref MonTest as Test) as double
'Calcul sur x et y
End Function
'*** VBA (Dans un module)
Type Test
x as double
y as double
End Type
Public MonTest as Test
Declare MaFonction Lib"" (Byref MonTest as Test) as Double
Sub Taux()
Dim oMonObjet as MonProjet.MaClasse
Set oMonObjet = New MonProjet.MaClasse
var= oMonObjet.MaFonction(MonTest)
end Sub
Merci d'avance
-----Message d'origine-----
si bien sur on peux (passage en byref (cad pointeur), il suffit que
le type (structure) soit déclaré en publique dans la classe.
--
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/
http://apisvb.europe.webmatrixhosting.net/
Yves <anonymous@discussions.microsoft.com> a écrit :
Ce serait curieux vu qu'en C++ çà marche très bien; je
passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine-----
Salut
A mon avis tu ne peux pas, en tout cas, penses aux byval...
@+
LJ
"Yves" <anonymous@discussions.microsoft.com> a écrit dans le
message de news:295301c47df9$54556db0$a401280a@phx.gbl...
J'ai un problème pour passer des arguments dans une DLL
créé sous VB et appelée sous VBA dès lors que les
arguments sont des "Type...End Type". Sachant que je
déclare les "Type" sous VB et sous VBA. Une idée?
Ton code VBA ne va pas ! Ce n'est pas des DLL API mais bien du COM :
Public MonTest as Test
Sub Taux()
Dim oMonObjet as MonProjet.MaClasse Set oMonObjet = New MonProjet.MaClasse
MsgBox oMonObjet.MaFonction(MonTest)
end Sub
-- 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/ http://apisvb.europe.webmatrixhosting.net/
Yves a écrit :
Merci pour la réponse mais je ne suis pas sûr de comprendre; Je passe mes arguments effectivement en Byref; Mes variables sont déclarées en "Type...End Type" à la fois sous VB (donc dans ma dll) et sous VBA. Je déclare ensuite sous le module VBA les Type en publique (l'appel de ma dll se fait en early-binding); Plus explicitement exemple de ce que je fais et qui ne marche pas :
'*** VB (Création Dll) (Dans une classe) Type Test x as double y as double End Type
Function MaFonction (Byref MonTest as Test) as double
'Calcul sur x et y
End Function
'*** VBA (Dans un module) Type Test x as double y as double End Type
Public MonTest as Test
Declare MaFonction Lib"" (Byref MonTest as Test) as Double
Sub Taux()
Dim oMonObjet as MonProjet.MaClasse Set oMonObjet = New MonProjet.MaClasse
var= oMonObjet.MaFonction(MonTest)
end Sub
Merci d'avance
-----Message d'origine----- si bien sur on peux (passage en byref (cad pointeur), il suffit que le type (structure) soit déclaré en publique dans la classe.
-- 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/ http://apisvb.europe.webmatrixhosting.net/
Yves a écrit :
Ce serait curieux vu qu'en C++ çà marche très bien; je passe les arguments en ByRef: est-ce là que çà cloche?
-----Message d'origine----- Salut
A mon avis tu ne peux pas, en tout cas, penses aux byval...
@+
LJ
"Yves" a écrit dans le message de news:295301c47df9$54556db0$ J'ai un problème pour passer des arguments dans une DLL créé sous VB et appelée sous VBA dès lors que les arguments sont des "Type...End Type". Sachant que je déclare les "Type" sous VB et sous VBA. Une idée?