Aide sur utilisation dll

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Yves Rouquier
Messages : 40
Inscription : mar. 23/mars/2004 10:23

Aide sur utilisation dll

Message 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 :?:
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

je crois que les doubles seront inclus dans la prochaine version de PB
GG
Messages : 239
Inscription : jeu. 09/déc./2004 12:23

Message par GG »

Bonjour,

Quelqu'un connait-il la fonction inverse à appeler dans cette DLL (Lambert2e-> Lat Long) ?
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Message 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
;################################################################ 
GG
Messages : 239
Inscription : jeu. 09/déc./2004 12:23

Message 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.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Message 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
Répondre