Je ne connais pas Delphi, a quoi correspond exactement le type extended (si c'est un type) ?
Sinon si c'est du variant, j'aurais plutot fais ca :
Private Declare Sub TerreRef Lib "terredll.dll" (ByRef jd as variant, ByVal x0 as variant, ByVal y0 as variant, ByVal z0 as variant, ByVal vx0 as variant, ByVal vy0 as variant, ByVal vz0 As Variant)
-- 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/
jdd deschamps wrote:
J'ai récupéré une DLL dont j'ai la source. Il y est écrit :
J'ai mis la DLL dans le répertoire de mon projet, et j'écris en VB :
Private Declare Sub TerreRef Lib "terredll.dll" _ (ByRef jd as variant, ByVal x0, y0, z0, vx0, vy0, vz0 As Variant)
puis dans le code : Call TerreRef(jd,...)
Cela vous paraît-il correct ? Le logiciel plante avec arrêt de VB : AppName: vb5.exe AppVer: 5.0.37.24 ModName: terredll.dll ModVer: 0.0.0.0 Offset: 0008e73f
Je ne sais pas si c'est la DLL ou ma déclaration qui fait planter.
Salut,
Je ne connais pas Delphi, a quoi correspond exactement le type extended (si
c'est un type) ?
Sinon si c'est du variant, j'aurais plutot fais ca :
Private Declare Sub TerreRef Lib "terredll.dll" (ByRef jd as variant, ByVal
x0 as variant, ByVal y0 as variant, ByVal z0 as variant, ByVal vx0 as
variant, ByVal vy0 as variant, ByVal vz0 As Variant)
--
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/
jdd deschamps wrote:
J'ai récupéré une DLL dont j'ai la source. Il y est écrit :
Je ne connais pas Delphi, a quoi correspond exactement le type extended (si c'est un type) ?
Sinon si c'est du variant, j'aurais plutot fais ca :
Private Declare Sub TerreRef Lib "terredll.dll" (ByRef jd as variant, ByVal x0 as variant, ByVal y0 as variant, ByVal z0 as variant, ByVal vx0 as variant, ByVal vy0 as variant, ByVal vz0 As Variant)
-- 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/
jdd deschamps wrote:
J'ai récupéré une DLL dont j'ai la source. Il y est écrit :
J'ai mis la DLL dans le répertoire de mon projet, et j'écris en VB :
Private Declare Sub TerreRef Lib "terredll.dll" _ (ByRef jd as variant, ByVal x0, y0, z0, vx0, vy0, vz0 As Variant)
puis dans le code : Call TerreRef(jd,...)
Cela vous paraît-il correct ? Le logiciel plante avec arrêt de VB : AppName: vb5.exe AppVer: 5.0.37.24 ModName: terredll.dll ModVer: 0.0.0.0 Offset: 0008e73f
Je ne sais pas si c'est la DLL ou ma déclaration qui fait planter.
Patrice Henrio
Je crois que le type extended correspond au long (à vérifier) mais il me parait évident qu'un type attendu ne peut pas être simplement transformer en variant sous prétexte qu'il peut accepter n'importe quel type. Il faut donner un type équivallent à extended c'est à dire un type occupant le même nombre d'octets et de plus une méthode de lecture permettant de le transformer du type VB au type delphi correspondant.
"jdd deschamps" a écrit dans le message de news:
J'ai récupéré une DLL dont j'ai la source. Il y est écrit :
Je crois que le type extended correspond au long (à vérifier) mais il me
parait évident qu'un type attendu ne peut pas être simplement transformer en
variant sous prétexte qu'il peut accepter n'importe quel type.
Il faut donner un type équivallent à extended c'est à dire un type occupant
le même nombre d'octets et de plus une méthode de lecture permettant de le
transformer du type VB au type delphi correspondant.
"jdd deschamps" <jdd.deschamps@wanadoo.fr> a écrit dans le message de news:
uhdk560yEHA.1300@TK2MSFTNGP14.phx.gbl...
J'ai récupéré une DLL dont j'ai la source. Il y est écrit :
Je crois que le type extended correspond au long (à vérifier) mais il me parait évident qu'un type attendu ne peut pas être simplement transformer en variant sous prétexte qu'il peut accepter n'importe quel type. Il faut donner un type équivallent à extended c'est à dire un type occupant le même nombre d'octets et de plus une méthode de lecture permettant de le transformer du type VB au type delphi correspondant.
"jdd deschamps" a écrit dans le message de news:
J'ai récupéré une DLL dont j'ai la source. Il y est écrit :
Je ne connais pas Delphi, a quoi correspond exactement le type extended
(si
c'est un type) ?
Sinon si c'est du variant, j'aurais plutot fais ca :
Private Declare Sub TerreRef Lib "terredll.dll" (ByRef jd as variant,
ByVal
x0 as variant, ByVal y0 as variant, ByVal z0 as variant, ByVal vx0 as variant, ByVal vy0 as variant, ByVal vz0 As Variant)
Extended est un type de données, c'est un genre de super Double de la mort, codé sur 10 octets (rien que ça...) et qui peut prendre des valeurs assez intéressantes: de -3.4 * 10^4932 à + 1.1 * 10^4932 si j'ai bien compris. Sais pas trop dans quoi mapper ça en fait. Je suppose que le mieux c'est dans un double VB, mais suis pas sur que ça colle cette affaire là...
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
"ng" <ng@ngsoft-fr.com> a écrit dans le message de
news:e7A9Pk1yEHA.2692@TK2MSFTNGP10.phx.gbl...
Salut,
Je ne connais pas Delphi, a quoi correspond exactement le type extended
(si
c'est un type) ?
Sinon si c'est du variant, j'aurais plutot fais ca :
Private Declare Sub TerreRef Lib "terredll.dll" (ByRef jd as variant,
ByVal
x0 as variant, ByVal y0 as variant, ByVal z0 as variant, ByVal vx0 as
variant, ByVal vy0 as variant, ByVal vz0 As Variant)
Extended est un type de données, c'est un genre de super Double de la
mort, codé sur 10 octets (rien que ça...) et qui peut prendre des
valeurs assez intéressantes: de -3.4 * 10^4932 à + 1.1 * 10^4932 si
j'ai bien compris. Sais pas trop dans quoi mapper ça en fait. Je
suppose que le mieux c'est dans un double VB, mais suis pas sur que ça
colle cette affaire là...
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Je ne connais pas Delphi, a quoi correspond exactement le type extended
(si
c'est un type) ?
Sinon si c'est du variant, j'aurais plutot fais ca :
Private Declare Sub TerreRef Lib "terredll.dll" (ByRef jd as variant,
ByVal
x0 as variant, ByVal y0 as variant, ByVal z0 as variant, ByVal vx0 as variant, ByVal vy0 as variant, ByVal vz0 As Variant)
Extended est un type de données, c'est un genre de super Double de la mort, codé sur 10 octets (rien que ça...) et qui peut prendre des valeurs assez intéressantes: de -3.4 * 10^4932 à + 1.1 * 10^4932 si j'ai bien compris. Sais pas trop dans quoi mapper ça en fait. Je suppose que le mieux c'est dans un double VB, mais suis pas sur que ça colle cette affaire là...
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
Patrick Philippot
jdd deschamps wrote:
J'ai récupéré une DLL dont j'ai la source. Il y est écrit :
Le type extended de Delphi correspond à la spec IEEE-754 (extended double precision type). Il n'a pas d'équivalent en Visual Basic. Si vous maîtrisiez le code source Delphi (est-ce le cas?), vous pourriez utiliser un double Delphi à la place de l'extended (avec évidemment une perte de données si le nombre dépasse la capacité du Double). Il serait compatible avec le Double de VB.
Tout ce que vous pouvez faire ici est de déclarer le prototype de la fonction avec un type custom (structure) d'une taille de 10 octets et d'appliquer ensuite sur ce buffer une routine de conversion vers un Double (je n'en ai pas trouvé en VB). Mais l'intérêt d'une telle routine serait limité dans le cas d'un dépassement de capacité du type Double. A moins que vous ne décidiez de gérer cette structure vous même (auquel cas, bon courage).
L'auteur de cette DLL n'a visiblement pas souhaité l'ouverture vers un autre langage. Ou il a utilisé le type extended par inadvertance: les cas où une telle capacité est nécessaire sont finalement assez rares.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
jdd deschamps wrote:
J'ai récupéré une DLL dont j'ai la source. Il y est écrit :
Le type extended de Delphi correspond à la spec IEEE-754 (extended
double precision type). Il n'a pas d'équivalent en Visual Basic. Si vous
maîtrisiez le code source Delphi (est-ce le cas?), vous pourriez
utiliser un double Delphi à la place de l'extended (avec évidemment une
perte de données si le nombre dépasse la capacité du Double). Il serait
compatible avec le Double de VB.
Tout ce que vous pouvez faire ici est de déclarer le prototype de la
fonction avec un type custom (structure) d'une taille de 10 octets et
d'appliquer ensuite sur ce buffer une routine de conversion vers un
Double (je n'en ai pas trouvé en VB). Mais l'intérêt d'une telle routine
serait limité dans le cas d'un dépassement de capacité du type Double. A
moins que vous ne décidiez de gérer cette structure vous même (auquel
cas, bon courage).
L'auteur de cette DLL n'a visiblement pas souhaité l'ouverture vers un
autre langage. Ou il a utilisé le type extended par inadvertance: les
cas où une telle capacité est nécessaire sont finalement assez rares.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Le type extended de Delphi correspond à la spec IEEE-754 (extended double precision type). Il n'a pas d'équivalent en Visual Basic. Si vous maîtrisiez le code source Delphi (est-ce le cas?), vous pourriez utiliser un double Delphi à la place de l'extended (avec évidemment une perte de données si le nombre dépasse la capacité du Double). Il serait compatible avec le Double de VB.
Tout ce que vous pouvez faire ici est de déclarer le prototype de la fonction avec un type custom (structure) d'une taille de 10 octets et d'appliquer ensuite sur ce buffer une routine de conversion vers un Double (je n'en ai pas trouvé en VB). Mais l'intérêt d'une telle routine serait limité dans le cas d'un dépassement de capacité du type Double. A moins que vous ne décidiez de gérer cette structure vous même (auquel cas, bon courage).
L'auteur de cette DLL n'a visiblement pas souhaité l'ouverture vers un autre langage. Ou il a utilisé le type extended par inadvertance: les cas où une telle capacité est nécessaire sont finalement assez rares.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Patrice Henrio
Ayant compris comment s'écrit l'extended, il suffit d'envoyer vers la DLL une structure de 10 octets en plaçant dans chaque octet la valeur représentant le nombre à passer.
Supposons que nous ne disposions que de structure sur un octet alors que delphi souhaite un word (double octet), il faut comprendre,par exemple, comment s'écrit 1 sur deux octets et créer un type de deux ocets type 2octets fort as byte faible as byte end type
Function PasserOctetsA2Octets(N as byte, M as byte) as 2octets PasserOctetsA2Octets.fort=N PasserOctetsA2Octets.faible=M end function
Pour une fonction utilisant le nombre 1 comme word on aurait
F(PasserA2octets(0,1))
Je ne sais pas si ça marche, mais c'est l'idée que je développerai.
"Patrick Philippot" a écrit dans le message de news:
jdd deschamps wrote:
J'ai récupéré une DLL dont j'ai la source. Il y est écrit :
Le type extended de Delphi correspond à la spec IEEE-754 (extended double precision type). Il n'a pas d'équivalent en Visual Basic. Si vous maîtrisiez le code source Delphi (est-ce le cas?), vous pourriez utiliser un double Delphi à la place de l'extended (avec évidemment une perte de données si le nombre dépasse la capacité du Double). Il serait compatible avec le Double de VB.
Tout ce que vous pouvez faire ici est de déclarer le prototype de la fonction avec un type custom (structure) d'une taille de 10 octets et d'appliquer ensuite sur ce buffer une routine de conversion vers un Double (je n'en ai pas trouvé en VB). Mais l'intérêt d'une telle routine serait limité dans le cas d'un dépassement de capacité du type Double. A moins que vous ne décidiez de gérer cette structure vous même (auquel cas, bon courage).
L'auteur de cette DLL n'a visiblement pas souhaité l'ouverture vers un autre langage. Ou il a utilisé le type extended par inadvertance: les cas où une telle capacité est nécessaire sont finalement assez rares.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Ayant compris comment s'écrit l'extended, il suffit d'envoyer vers la DLL
une structure de 10 octets en plaçant dans chaque octet la valeur
représentant le nombre à passer.
Supposons que nous ne disposions que de structure sur un octet alors que
delphi souhaite un word (double octet), il faut comprendre,par exemple,
comment s'écrit 1 sur deux octets et créer un type de deux ocets
type 2octets
fort as byte
faible as byte
end type
Function PasserOctetsA2Octets(N as byte, M as byte) as 2octets
PasserOctetsA2Octets.fort=N
PasserOctetsA2Octets.faible=M
end function
Pour une fonction utilisant le nombre 1 comme word on aurait
F(PasserA2octets(0,1))
Je ne sais pas si ça marche, mais c'est l'idée que je développerai.
"Patrick Philippot" <patrick.philippot@mainsoft.xx.fr> a écrit dans le
message de news: uooFVx7yEHA.2752@TK2MSFTNGP11.phx.gbl...
jdd deschamps wrote:
J'ai récupéré une DLL dont j'ai la source. Il y est écrit :
Le type extended de Delphi correspond à la spec IEEE-754 (extended double
precision type). Il n'a pas d'équivalent en Visual Basic. Si vous
maîtrisiez le code source Delphi (est-ce le cas?), vous pourriez utiliser
un double Delphi à la place de l'extended (avec évidemment une perte de
données si le nombre dépasse la capacité du Double). Il serait compatible
avec le Double de VB.
Tout ce que vous pouvez faire ici est de déclarer le prototype de la
fonction avec un type custom (structure) d'une taille de 10 octets et
d'appliquer ensuite sur ce buffer une routine de conversion vers un Double
(je n'en ai pas trouvé en VB). Mais l'intérêt d'une telle routine serait
limité dans le cas d'un dépassement de capacité du type Double. A moins
que vous ne décidiez de gérer cette structure vous même (auquel cas, bon
courage).
L'auteur de cette DLL n'a visiblement pas souhaité l'ouverture vers un
autre langage. Ou il a utilisé le type extended par inadvertance: les cas
où une telle capacité est nécessaire sont finalement assez rares.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Ayant compris comment s'écrit l'extended, il suffit d'envoyer vers la DLL une structure de 10 octets en plaçant dans chaque octet la valeur représentant le nombre à passer.
Supposons que nous ne disposions que de structure sur un octet alors que delphi souhaite un word (double octet), il faut comprendre,par exemple, comment s'écrit 1 sur deux octets et créer un type de deux ocets type 2octets fort as byte faible as byte end type
Function PasserOctetsA2Octets(N as byte, M as byte) as 2octets PasserOctetsA2Octets.fort=N PasserOctetsA2Octets.faible=M end function
Pour une fonction utilisant le nombre 1 comme word on aurait
F(PasserA2octets(0,1))
Je ne sais pas si ça marche, mais c'est l'idée que je développerai.
"Patrick Philippot" a écrit dans le message de news:
jdd deschamps wrote:
J'ai récupéré une DLL dont j'ai la source. Il y est écrit :
Le type extended de Delphi correspond à la spec IEEE-754 (extended double precision type). Il n'a pas d'équivalent en Visual Basic. Si vous maîtrisiez le code source Delphi (est-ce le cas?), vous pourriez utiliser un double Delphi à la place de l'extended (avec évidemment une perte de données si le nombre dépasse la capacité du Double). Il serait compatible avec le Double de VB.
Tout ce que vous pouvez faire ici est de déclarer le prototype de la fonction avec un type custom (structure) d'une taille de 10 octets et d'appliquer ensuite sur ce buffer une routine de conversion vers un Double (je n'en ai pas trouvé en VB). Mais l'intérêt d'une telle routine serait limité dans le cas d'un dépassement de capacité du type Double. A moins que vous ne décidiez de gérer cette structure vous même (auquel cas, bon courage).
L'auteur de cette DLL n'a visiblement pas souhaité l'ouverture vers un autre langage. Ou il a utilisé le type extended par inadvertance: les cas où une telle capacité est nécessaire sont finalement assez rares.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
jdd deschamps
> L'auteur de cette DLL n'a visiblement pas souhaité l'ouverture vers un autre langage. Ou il a utilisé le type extended par inadvertance: les cas où une telle capacité est nécessaire sont finalement assez rares.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Il ne devait pas connaître le VB. C'est pour des calculs de coordonnées astronomiques, ce qui explique son choix de l'"extended".
> L'auteur de cette DLL n'a visiblement pas souhaité l'ouverture vers un
autre langage. Ou il a utilisé le type extended par inadvertance: les
cas où une telle capacité est nécessaire sont finalement assez rares.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Il ne devait pas connaître le VB. C'est pour des calculs de coordonnées
astronomiques, ce qui explique son choix de l'"extended".
> L'auteur de cette DLL n'a visiblement pas souhaité l'ouverture vers un autre langage. Ou il a utilisé le type extended par inadvertance: les cas où une telle capacité est nécessaire sont finalement assez rares.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Il ne devait pas connaître le VB. C'est pour des calculs de coordonnées astronomiques, ce qui explique son choix de l'"extended".
jdd deschamps
Je vous remercie de vos réponses. Je comprends maintenant pourquoi le logiciel plantait. Comme la conversion de données Extended vers un Double semble délicate, je vais plutôt récupérer le code source de la DLL et le réécrire en VB. Ca va prendre du temps mais peut-être moins que de tenter d'utiliser la DLL telle qu'elle existe.
Je vous remercie de vos réponses. Je comprends maintenant pourquoi le
logiciel plantait.
Comme la conversion de données Extended vers un Double semble délicate, je
vais plutôt récupérer le code source de la DLL et le réécrire en VB. Ca va
prendre du temps mais peut-être moins que de tenter d'utiliser la DLL telle
qu'elle existe.
Je vous remercie de vos réponses. Je comprends maintenant pourquoi le logiciel plantait. Comme la conversion de données Extended vers un Double semble délicate, je vais plutôt récupérer le code source de la DLL et le réécrire en VB. Ca va prendre du temps mais peut-être moins que de tenter d'utiliser la DLL telle qu'elle existe.
"jdd deschamps" a écrit dans le message de news:epe$$
Je vous remercie de vos réponses. Je comprends maintenant pourquoi le logiciel plantait. Comme la conversion de données Extended vers un Double semble délicate, je vais plutôt récupérer le code source de la DLL et le réécrire en VB. Ca va prendre du temps mais peut-être moins que de tenter d'utiliser la DLL
telle
qu'elle existe.
Si tu as acces au code source de la DLL, il suffit de modifier le type de sortie en celui qui va bien et de la recompiler (en Delphi : quelle version ?, pas difficile a trouver).
Du borland, cela se trouve...... @+
"jdd deschamps" <jdd.deschamps@wanadoo.fr> a écrit dans le message de
news:epe$$QAzEHA.1204@TK2MSFTNGP10.phx.gbl...
Je vous remercie de vos réponses. Je comprends maintenant pourquoi le
logiciel plantait.
Comme la conversion de données Extended vers un Double semble délicate, je
vais plutôt récupérer le code source de la DLL et le réécrire en VB. Ca va
prendre du temps mais peut-être moins que de tenter d'utiliser la DLL
telle
qu'elle existe.
Si tu as acces au code source de la DLL,
il suffit de modifier le type de sortie en celui qui va bien
et de la recompiler (en Delphi : quelle version ?, pas difficile a trouver).
"jdd deschamps" a écrit dans le message de news:epe$$
Je vous remercie de vos réponses. Je comprends maintenant pourquoi le logiciel plantait. Comme la conversion de données Extended vers un Double semble délicate, je vais plutôt récupérer le code source de la DLL et le réécrire en VB. Ca va prendre du temps mais peut-être moins que de tenter d'utiliser la DLL
telle
qu'elle existe.
Si tu as acces au code source de la DLL, il suffit de modifier le type de sortie en celui qui va bien et de la recompiler (en Delphi : quelle version ?, pas difficile a trouver).
Du borland, cela se trouve...... @+
jdd deschamps
Pas bête. Du Delphi 4 apparamment. J'ai un ami qui bosse en Delphi, je vais lui demander quelle version il utilise et s'il peut me faire ça.
Si tu as acces au code source de la DLL, il suffit de modifier le type de sortie en celui qui va bien et de la recompiler (en Delphi : quelle version ?, pas difficile a
trouver).
Du borland, cela se trouve...... @+
Pas bête. Du Delphi 4 apparamment. J'ai un ami qui bosse en Delphi, je vais
lui demander quelle version il utilise et s'il peut me faire ça.
Si tu as acces au code source de la DLL,
il suffit de modifier le type de sortie en celui qui va bien
et de la recompiler (en Delphi : quelle version ?, pas difficile a
Pas bête. Du Delphi 4 apparamment. J'ai un ami qui bosse en Delphi, je vais lui demander quelle version il utilise et s'il peut me faire ça.
Si tu as acces au code source de la DLL, il suffit de modifier le type de sortie en celui qui va bien et de la recompiler (en Delphi : quelle version ?, pas difficile a
trouver).
Du borland, cela se trouve...... @+
YannX
> Pas bête.
Merci ;-) je rigole
Du Delphi 4 apparamment. J'ai un ami qui bosse en Delphi, je vais lui demander quelle version il utilise et s'il peut me faire ça.
Tu peux meme lui simplifier le travail : demande-lui juste de te compiler un "wrapper" Cela lui evitera tout tracas (et a toi aussi, si jamais il y a une mise a jour !)
// bon mon pascal a ete bcp oublié, mais l'idee est de convertir/ transtyper avant l'appel ! procedure BTerreRef(jdb:double;var x0b,y0b,z0b,vx0,bvy0b,vz0b:double) jd:extended;var x0,y0,z0,vx0,vy0,vz0:extended begin jd = extended(jdb) ; .......... procedure TerreRef(jd, x0,y0,z0,vx0,vy0,vz0);
end. // dans une DLL accessoire...
> Si tu as acces au code source de la DLL, > il suffit de modifier le type de sortie en celui qui va bien > et de la recompiler (en Delphi : quelle version ?, pas difficile a trouver). > > Du borland, cela se trouve...... > @+
> Pas bête.
Merci ;-) je rigole
Du Delphi 4 apparamment. J'ai un ami qui bosse en Delphi, je vais
lui demander quelle version il utilise et s'il peut me faire ça.
Tu peux meme lui simplifier le travail :
demande-lui juste de te compiler un "wrapper"
Cela lui evitera tout tracas (et a toi aussi, si jamais il y a une mise a
jour !)
// bon mon pascal a ete bcp oublié, mais l'idee est de convertir/ transtyper
avant l'appel !
procedure BTerreRef(jdb:double;var x0b,y0b,z0b,vx0,bvy0b,vz0b:double)
jd:extended;var x0,y0,z0,vx0,vy0,vz0:extended
begin
jd = extended(jdb) ;
..........
procedure TerreRef(jd, x0,y0,z0,vx0,vy0,vz0);
end.
// dans une DLL accessoire...
> Si tu as acces au code source de la DLL,
> il suffit de modifier le type de sortie en celui qui va bien
> et de la recompiler (en Delphi : quelle version ?, pas difficile a
trouver).
>
> Du borland, cela se trouve......
> @+
Du Delphi 4 apparamment. J'ai un ami qui bosse en Delphi, je vais lui demander quelle version il utilise et s'il peut me faire ça.
Tu peux meme lui simplifier le travail : demande-lui juste de te compiler un "wrapper" Cela lui evitera tout tracas (et a toi aussi, si jamais il y a une mise a jour !)
// bon mon pascal a ete bcp oublié, mais l'idee est de convertir/ transtyper avant l'appel ! procedure BTerreRef(jdb:double;var x0b,y0b,z0b,vx0,bvy0b,vz0b:double) jd:extended;var x0,y0,z0,vx0,vy0,vz0:extended begin jd = extended(jdb) ; .......... procedure TerreRef(jd, x0,y0,z0,vx0,vy0,vz0);
end. // dans une DLL accessoire...
> Si tu as acces au code source de la DLL, > il suffit de modifier le type de sortie en celui qui va bien > et de la recompiler (en Delphi : quelle version ?, pas difficile a trouver). > > Du borland, cela se trouve...... > @+