A l'aide d'une dll, j'ai créé une fonction en Delphi.
La déclaration comme fonction external se pase bien avec IB6.
Mais lors de de l'utilisation la valeur retournée est toujours zéro.
Voici le texte de la dll:
et la déclaration sous interbase
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 uses SysUtils, Classes, math, ib_util in 'C:\Program Files\Borland\InterBase\SDK\include\ib_util.pas'; ////// Convertir de deg,min eu deg,decimale //1 function CvAngleDec(rAngle:double):double; var rAngle_Ent,rAngle_Dec:real; begin rAngle_Dec:=abs(frac(rAngle))*10/6; rAngle_Ent:=floor( rAngle); if rAngle<0 then result:=rAngle_ent+(1-rAngle_Dec) else result:=rAngle_ent + rAngle_Dec; end; exports CvAngleDec; begin end.
Utilisation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 DECLARE EXTERNAL FUNCTION CVANGLEDEC FLOAT RETURNS FLOAT BY VALUE ENTRY_POINT 'CvAngleDec' MODULE_NAME 'angledll.dll';
Domaine de monChamp : float
Code : Sélectionner tout - Visualiser dans une fenêtre à part select CVANGLEDEC(monChamp) from ma table;
Le problème viendrait-il du fait que D6 n'a pas le type float ? Plusieurs essais ont été faits en modifiant les type ds la dll
Merci pour la réponse.
Message édité par Barbibulle :
Partager