FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Ma 1ère DLL - Page 2 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Ma 1ère DLL - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Ma 1ère DLL - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Ma 1ère DLL - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Ma 1ère DLL - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Ma 1ère DLL - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Ma 1ère DLL - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Ma 1ère DLL - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Ma 1ère DLL - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Ma 1ère DLL - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Ma 1ère DLL - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Ma 1ère DLL - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Ma 1ère DLL - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Ma 1ère DLL - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Ma 1ère DLL - Page 2 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
LEGO Icons 10331 – Le martin-pêcheur
Voir le deal
35 €

 

 Ma 1ère DLL

Aller en bas 
+2
Klaus
papydall
6 participants
Aller à la page : Précédent  1, 2
AuteurMessage
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Ma 1ère DLL - Page 2 Empty
MessageSujet: re   Ma 1ère DLL - Page 2 EmptyMer 11 Juil 2012 - 3:46

j'essaye mais y'a un truc scratch


voies tu quelque chose d'incorrect dans ce code freebasic :
Code:
Public Function Recup(ByRef result As String) As Integer Export
Dim a As String= "Bonjour "
Dim b As String= "le "
Dim c As String= "monde"
Dim resultat As String
    resultat= a + b + c
    result=resultat
  Return 0
End Function

puis pour recuperer en panoramic :
Code:
dim i%,result$

dll_on " Ma dll.dll"
i%=dll_call1(adr(result$))
print result$
dll_off

à la compilation, la dll passe
mais après panoramic me dit que ce n'est pas opération arithmétique valide. geek
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Ma 1ère DLL - Page 2 Empty
MessageSujet: Re: Ma 1ère DLL   Ma 1ère DLL - Page 2 EmptyMer 11 Juil 2012 - 8:51

Dans ta fonction, ce ne serait pas plutôt "return result" au lieu de "return 0" ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Ma 1ère DLL - Page 2 Empty
MessageSujet: Re: Ma 1ère DLL   Ma 1ère DLL - Page 2 EmptyMer 11 Juil 2012 - 9:31

Bon début, mais il y a quelques erreurs ...

Code:

extern "Windows-MS" : ' Indispensable !

function Recup(ByRef result As zstring ptr) As Integer Export
' les chaines de caracteres sont passees sous forme de pointeurs
' sur des chaines a zero terminal, soit "zstring ptr" en FreeBASIC
Dim a As String= "Bonjour "
Dim b As String= "le "
Dim c As String= "monde"
Dim resultat As String
    resultat= a + b + c
    *result=resultat      ' L'etoile est necessaire car result est un pointeur
  Return 0
End Function

end extern : 'Indispensable aussi !

J'ai sauvegardé sous string1.bas car je n'étais pas sûr qu'on puisse inclure des espaces dans les noms de fichiers !

Appel en panoramic :

Code:

dim i%,result$

' La chaine retournee par la fonction de DLL
' doit etre dimensionnee a une longueur suffisante

result$ = string$(30, " ")

dll_on "string1.dll"

' Le nom de la fonction doit etre le 1er parametre de dll_call
i% = dll_call1("Recup", adr(result$))

print result$
dll_off

Pour plus de précisions, voir mon tutoriel :

http://www.unilim.fr/pages_perso/jean.debord/panoramic/dll/panoramic_dll.htm
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Ma 1ère DLL - Page 2 Empty
MessageSujet: re   Ma 1ère DLL - Page 2 EmptyMer 11 Juil 2012 - 12:53

@ Klaus et Jean debord

Merci pour ces explications et la correction.

je vous dois une petite explication sur le pourquoi.
Dans je voulais faire evoluer mon appli GDF.Suez vers un multi fournisseur sauf que
les calculs sont pas toujours les mêmes de l'un à l'autre vu les infos mises à dispo sur les factures et ces calculs évoluent selon
la dernière taxe au gout du jours.
Donc au lieu de faire deux fichiers ( Param.inf + calcul_xxx.dll ), je voulais mettre une fonction qui me renvoie les paramètres, pour visualisation, que j'aurai intégré à la dll. Ainsi en fonction de l'évolution du calcul du fournisseur ,je ne change que la dll associée.

voilà,voilà..... Laughing

Edit :

Je garde ton lien sous le coude , super tutoriel !


Dernière édition par ygeronimi le Mer 11 Juil 2012 - 13:00, édité 1 fois
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Ma 1ère DLL - Page 2 Empty
MessageSujet: Re: Ma 1ère DLL   Ma 1ère DLL - Page 2 EmptyMer 11 Juil 2012 - 12:59

Oui, c'est un cas typique d'utilisation d'une DLL ! Avec cette technique, tu vas obtenir le résultat que tu cherches.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Ma 1ère DLL - Page 2 Empty
MessageSujet: re   Ma 1ère DLL - Page 2 EmptyMer 11 Juil 2012 - 13:05

Oui, et comme Panoramic me permet un affichage dynamique qu'il y est 10 ou vingt variables à visualiser peut importe.
La visualisation m' est utile pour savoir si la dll est à jours par comparaison avec la facture ( les taxes évoluant tellement vite dans ce pays Laughing .
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Ma 1ère DLL - Page 2 Empty
MessageSujet: Re: Ma 1ère DLL   Ma 1ère DLL - Page 2 EmptyJeu 12 Juil 2012 - 22:45

Salut tout le monde.

Voici ma nouvelle DLL : trigo.dll
Cette DLL comporte pas moins de 18 fonctions toutes relatives à la trigonométrie.
Les fonctions en question ne sont pas définies dans PANORAMIC (ni d’ailleurs dans beaucoup d’autres langages de programmation).
Etant donné que ces fonctions sont spécifiques à la trigonométrie, cette DLL ne sera, sans doute, pas très utile pour la majorité des programmeurs, mais elle sera appréciée par certains.

Le programme testTrigoDLL.bas suivant permet de tester les différentes fonctions contenues dans trigo.dll que vous pouvez télécharger sur mon webdav, dans le répertoire Mes DLL, sous répertoire trigo
www.mydrive.ch
username : panoramicien@papydall_panoramic
password: panoramic123


Pour ceux qui le désirent, je mets également dans le même répertoire le source en DELPHI de cette DLL sous le nom trigo.dpr

Pour tester la DLL, mettez dans le même répertoire testTrigoDLL.bas et trigo.dll

Il est à noter que certaines fonctions ne sont pas définies pour certaines valeurs de la variable x ; alors pour éviter un message d’erreur, la valeur renvoyée par la fonction sera, dans ce cas égale à la valeur infinie arbitrairement choisie de 1E100.


Code:


' Test de la DLL trigo.dll
' Cette DLL contient 18 fonctions qui ne sont pas définies dans PANORAMIC
' et qui peuvent servir à certains.
' Lorsque la fonction n'est pas définie pour l'argument d'appel, elle retourne
' la valeur 1E100 (pour éviter le message d'erreur)

dim x,y,resultat ,i%,pi ,rad,deg
pi = 4*atn(1)

print "  TEST DE LA DLL TRIGO.DLL" : print : print
dll_on "trigo.dll"

' Transforme les Radians en Dégrés
  rad = pi
  i% = dll_call2("Rad2Deg",adr(rad),adr(resultat))
  print "  ";rad;" radians = "; resultat ;" dégrés"
 
' Transforme les Dégrés en Radians
  deg = 180
  i% = dll_call2("Deg2Rad",adr(deg),adr(resultat))
  print "  ";deg;" dégrés = "; resultat ;" radians" :print
 
' Renvoie la valeur de l'arc tangente de y/x en tenant compte des signes de Y et de X
  x = -1 : y = 1
  i% = dll_call3("ArcTan2",adr(x),adr(y),adr(resultat))
  print "  atn2(";x;",";y;") = ";resultat

 
' Renvoie la valeur de cotangente x
  x = 0
  i% = dll_call2("CoTan",adr(x),adr(resultat))
  print "  cotangente (";x;") = ";resultat

 
' Renvoie la valeur de la secante de x
  x = pi/4
  i% = dll_call2("Secante",adr(x),adr(resultat))
  print "  secante (";x;") = ";resultat
 
 
' renvoie la valeur de la cosecante de x
 x = pi/2
  i% = dll_call2("CoSecante",adr(x),adr(resultat))
  print "  cosecante (";x;") = ";resultat
 
 
' Renvoie la valeur de l'arc cotangente de x
 x = 1
  i% = dll_call2("ArcCoTangente",adr(x),adr(resultat))
  print "  arccotangente (";x;") = ";resultat
 
 
' Renvoie la valeur de l'arc secante de x
 x = 1
  i% = dll_call2("ArcSecante",adr(x),adr(resultat))
  print "  arcsecante (";x;") = ";resultat
 

' Renvoie la valeur de l'arc cosecante de x
x = 1
  i% = dll_call2("ArcCoSecante",adr(x),adr(resultat))
  print "  arcosecante (";x;") = ";resultat
 
 
' Renvoie la valeur de la cotangente hyperbolique de x
x = 1
  i% = dll_call2("HcoTan",adr(x),adr(resultat))
  print "  cotangente hyperbolique (";x;") = ";resultat
 

' Renvoie la valeur de la secant hyperbolique de x
x = 0
  i% = dll_call2("Hsec",adr(x),adr(resultat))
  print "  secante hyperbolique (";x;") = ";resultat
 
 
' Renvoie la valeur de la cosecante hyperbolique de x
x = 1
  i% = dll_call2("HCosec",adr(x),adr(resultat))
  print "  cosecante hyperbolique (";x;") = ";resultat
 
x = 1
  i% = dll_call2("ArgSh",adr(x),adr(resultat))
  print "  argument sinus hyperbolique (";x;") = ";resultat
 
 
' Renvoie la valeur de l'argument cosinus hyperbolique de x
x = 1
  i% = dll_call2("ArgCh",adr(x),adr(resultat))
  print "  argument cosinus hyperbolique (";x;") = ";resultat
 
 
' Renvoie la valeur de l'argument tangente hyperbolique de x
x = -0.5
  i% = dll_call2("ArgTh",adr(x),adr(resultat))
  print "  argument tangente hyperbolique (";x;") = ";resultat
 
 
' Renvoie le valeur de l'argument cotangente hyperbolique de x
x = -3
  i% = dll_call2("ArgCoTh",adr(x),adr(resultat))
  print "  argument cotangente hyperbolique (";x;") = ";resultat
 
 
' Renvoie la valeur de l'argument secante hyperbolique de x
x = 0.5
  i% = dll_call2("ArgSech",adr(x),adr(resultat))
  print "  argument secante hyperbolique (";x;") = ";resultat
 
 
' Renvoie la valeur de l'argument cosecante hyperbolique de x
x = 3
  i% = dll_call2("ArgCoSech",adr(x),adr(resultat))
  print "  argument cosecante hyperbolique (";x;") = ";resultat

dll_off

A+
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Ma 1ère DLL - Page 2 Empty
MessageSujet: re   Ma 1ère DLL - Page 2 EmptyVen 13 Juil 2012 - 11:22

Je ne suis pas un utilisateur de trigonométrie mais je mémorise...

....on ne sait jamais Laughing

En tout cas ,bravo pour cette nouvelle dll outils qui complète les possibilités de Panoramic
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Ma 1ère DLL - Page 2 Empty
MessageSujet: Re: Ma 1ère DLL   Ma 1ère DLL - Page 2 EmptyVen 13 Juil 2012 - 19:08

Ça m’a permis de voir un petit peu plus clair dans le codage d’une DLL.
Certainement j’en ferais d’autres plus ou mois ‘populaires’ !
Laughing
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





Ma 1ère DLL - Page 2 Empty
MessageSujet: Re: Ma 1ère DLL   Ma 1ère DLL - Page 2 Empty

Revenir en haut Aller en bas
 
Ma 1ère DLL
Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: