Page 1 sur 1

Aide sur utilisation dll

Publié : mar. 04/mai/2004 21:11
par Yves Rouquier
Bonjour ! :)
Voila ! J'aimerais utiliser la dll WDGPS.DLL de Bruno BASLI
dll de convertion latitude logitude coordonnée Lambert etc ..
exemple d'utilisation VB ici :[url]
http://www.wdgps.com/wdgps/Exemple_vbas ... _HOWTO.txt
[url]

essai de codage en pure :

Code : Tout sélectionner

; test utilisation dll WDGPS.DLL de Bruno BASLI

OpenConsole()
Global x.f,y.f,lat.f,lon.f

Print("Entrez latitude en degres decimal ?")
lat$ = Input()

PrintN("")

Print("Entrez longitude en degres decimal ?")
lon$ = Input()

PrintN("")

lat = ValF(lat$)
lon = ValF(lon$)

If OpenLibrary(1, "WDGPS.DLL")
  
  resultat =  CallFunction(1,"LatLon_WGS84_2_LT2e",lat,lon,x,y) 
  
  Debug "retour =" + Str(resultat)
  
  
  If resultat
    
    PrintN("coordonnée x = " + Str(x))
    PrintN("coordonnée y = " + Str(y))
  Else
    MessageRequester("info","probleme sur appel de fonction de la dll",0)
  EndIf
  
Else 
  
  MessageRequester("info"," Ne trouve pas WDGPS.DLL",0)
  
EndIf
a$=Input()
CloseLibrary(1)
CloseConsole()
End
Mais 2 Problemes : Des Variables Double en Vb et Pas en Pure ? :?:
La fonction que je veux utiliser renvoie 2 variable x et y
Quel sintaxe utiliser :?:

Publié : mar. 04/mai/2004 21:15
par Oliv
je crois que les doubles seront inclus dans la prochaine version de PB

Publié : ven. 26/sept./2008 9:31
par GG
Bonjour,

Quelqu'un connait-il la fonction inverse à appeler dans cette DLL (Lambert2e-> Lat Long) ?

Publié : ven. 26/sept./2008 10:37
par kernadec
bonour
pour les dll externe qui sont utilisées par vb et autre
voila essaye avec les prototypes voila un exemple qui est
sur le site utilisé pour les éphémérides

Code : Tout sélectionner

;################################################################
Prototype.d SWE_JulDay(annee.l,mois.l,jour.l,heure.d,flag.l)
Prototype.l SWE_RevJul(juliandate.d,flag.l,*annee.l,*mois.l,*jour.l,*heure.l)
Prototype.l SWE_Day_Of_Week(juliandate.d)
Prototype.d SWE_DegNorm(juliandate.d)
Prototype.d SWE_date_conversion(annee.l,mois.l,jour.l,heure.d,cal.b,tjd.d)
Prototype.l SWE_Calc_ut(tjd.d,ipl.l,Iflag.l,*x,serr.s)
Prototype.s SWE_set_ephe_path(path.s)
Prototype.l SWE_get_planet_name(ipl.l,pName.s)
Prototype.d SWE_deltat(tjd.d)
Prototype.l SWE_pheno(tjd.d,ipl.l,Iflag.l,*attr,serr.s)
Prototype.l SWE_rise_trans(tjd.d,ipl.l,starname.s,epheflag.l,rsmi.l,*geopos,atpress.d,attemp.d,*tret,serr.s)
Prototype.l SWE_houses_ex(tjd.d,Iflag.l,geolat.d,geolon.d,ihsy.l,*cusp,*ascmc)
Prototype.d SWE_sidtime(tjd.d)
Prototype.l SWE_houses_armc(armc.d,geolat.d,eps.d,ihsy.l,*cusp,*ascmc)
;################################################################
;################### premier mode ###############################
If OpenLibrary(1,path+"\swedll32.dll")
   JulDay.SWE_JulDay = GetFunction(1,"_swe_julday@24")
   RevJul.SWE_RevJul = GetFunction(1,"_swe_revjul@28")
   Day_Of_Week.SWE_Day_Of_Week = GetFunction(1,"_swe_day_of_week@8")
   DegNorm.SWE_DegNorm = GetFunction(1,"_swe_degnorm@8")
   Date_conversion.SWE_date_conversion = GetFunction(1,"_swe_date_conversion@28")
   Calc_ut.SWE_Calc_ut= GetFunction(1,"_swe_calc_ut@24")
   set_ephe_path.SWE_set_ephe_path= GetFunction(1,"_swe_set_ephe_path@4")
   get_planet_name.SWE_get_planet_name= GetFunction(1,"_swe_get_planet_name@8")
   deltat.SWE_deltat= GetFunction(1,"_swe_deltat@8")
   pheno.SWE_pheno= GetFunction(1,"_swe_pheno@24")
   rise_trans.SWE_rise_trans= GetFunction(1,"_swe_rise_trans@52")
   houses_ex.SWE_houses_ex= GetFunction(1,"_swe_houses_ex@40")
   sidtime.SWE_sidtime= GetFunction(1,"_swe_sidtime@8")
   houses_armc.SWE_houses_armc= GetFunction(1,"_swe_houses_armc@36")
  Else
  MessageRequester("Error!","Can't open library!",#MB_ICONERROR)
  End
EndIf
;################################################################ 

Publié : ven. 26/sept./2008 11:22
par GG
Merci, mais je ne vois pas de fonction de conversion Lambert II vers Lat Longitude. :oops:.

Je vais essayer si avec la syntaxe "LT2e_2_LatLon_WGS84" cela fonctionne.

Publié : ven. 26/sept./2008 13:00
par kernadec
je pense que c'est la méme commande,
prototypes remplace la fonction call
mais le résultat se trouve dans un tableau a plusieurs dimensions
peut etre

exemple de fonction vb convertie en appel prototype
dans le code precedent:
Private Declare Function swe_calc Lib "swedll32.dll" _
Alias "_swe_calc@24" ( _
ByVal tjd As Double, _
ByVal ipl As long, _
ByVal iflag As long, _
byref x As Double, _
ByVal serr As String _
) As long ' x must be first of six array elements
' serr must be able to hold 256 bytes