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.
Problème avec instruction ADR() Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Problème avec instruction ADR() Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Problème avec instruction ADR() Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Problème avec instruction ADR() Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Problème avec instruction ADR() Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Problème avec instruction ADR() Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Problème avec instruction ADR() Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Problème avec instruction ADR() Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Problème avec instruction ADR() Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Problème avec instruction ADR() Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Problème avec instruction ADR() Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Problème avec instruction ADR() Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Problème avec instruction ADR() Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Problème avec instruction ADR() Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Problème avec instruction ADR() 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 : -47%
SAMSUNG T7 Shield Bleu – SSD Externe 1 To ...
Voir le deal
89.99 €

 

 Problème avec instruction ADR()

Aller en bas 
3 participants
AuteurMessage
Klaus

Klaus


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

Problème avec instruction ADR() Empty
MessageSujet: Problème avec instruction ADR()   Problème avec instruction ADR() EmptyDim 7 Mar 2010 - 17:43

Bonsoir,

J'essaie d'utiliser l'instruction adr() et j'obtiens des résultats bizarres.

J'ai utilisé l'exemple dans le manuel de référence:

Code:

dim a%,b,c$

print adr(a%)
print adr(b)
print adr(c$)

end

J'ai essayé avec plusieurs variables de type flottant, l'adresse est toujours 0. J'ai essayé d'initialiser le string, mais le résultat est toujours un message d'erreur. En fait, cela semble marcher pour le type integer seulement. Est-ce que je me trompe ?


et j'obtiens:

Code:

10781732
0

suivi de la fenêtre d'erreur de Panoramic avec le message:
" is not a floting point value.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Problème avec instruction ADR() Empty
MessageSujet: Re: Problème avec instruction ADR()   Problème avec instruction ADR() EmptyDim 7 Mar 2010 - 18:32

Effectivement, même chose, ça ressemble fortement à un bug !
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2395
Date d'inscription : 28/05/2007

Problème avec instruction ADR() Empty
MessageSujet: Re: Problème avec instruction ADR()   Problème avec instruction ADR() EmptyDim 7 Mar 2010 - 21:42

Il y a effectivement un bug dans ADR() , qui avait déjà été signalé par JL35:
https://panoramic.1fr1.net/a-l-aide-f6/floating-point-value-t542.htm
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Klaus

Klaus


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

Problème avec instruction ADR() Empty
MessageSujet: Re: Problème avec instruction ADR()   Problème avec instruction ADR() EmptyLun 8 Mar 2010 - 0:10

Bon soir,

Oui, j'avais vu ce message.

Comme je l'ai dit, il n'y a pas le feu. Mieux vaut que tu prennes le temps pour le faire sans être stressé que de te sentir pressé d'agir par les adeptes impatients - tout le monde en sortira gagnant finalement.

Je suis tombé dessus par hasard, car tout heureux d'avoir réussi à régler mon problème d'accès aux DLL, je voulais essayer de retourner des strings ce qui était l'objectif.

Par le petit bout de code suivant:
Code:

dim i%,j%,k%,l%,m%

print adr(i%)
print adr(j%)
print adr(k%)
print adr(l%)
print adr(m%)

end

j'ai découvert que des entiers "successifs" au niveau du programme sont en fait "ecartés" de 72 octets en mémoire. Cela veut-il dire que Panoramic mélange l'espace pour les variables avec d'autres informations ?

Et question plus importante: lorsque adr(x$) marchera, est-ce que l'on pourra écrire dans l'espace à partir de cette adresse, un peu comme ceci:
i% = dll_call2("ma_routine_DLL",adr(a$),len(a$))
Dans ce cas, je retournerais un code retour dans i% et le véritable résultat string dans a$ sur une longueur de len(a$). Est-ce que je peux envisager cela ?

Bon courage pour la suite de Panoramic !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jack
Admin
Jack


Nombre de messages : 2395
Date d'inscription : 28/05/2007

Problème avec instruction ADR() Empty
MessageSujet: Re: Problème avec instruction ADR()   Problème avec instruction ADR() EmptyLun 8 Mar 2010 - 8:59

Les DLL avaient été codées dans l'urgence.

Tim me les avait demandées le 28 mars 2009, et il avait obtenu des premières fonctions opérationnelles le 30 mars 2009 (après 2 jours de codage forcené).
Depuis, plus aucune nouvelle ...

Je vais remanier toutes ces fonctions:
CALL_DLLn(), ADR(), HANDLE(), HANDLE_CANVAS() pour les rendre plus faciles à utiliser.
Je ferai ça calmement, en prenant mon temps, mais surement.

Pour le moment ADR() d'une variable entière fonctionne, mais ne fonctionne pas pour des variables réelles ou string.

Les adresses des variables entières en effet ne sont pas juxtaposées car plusieurs informations sont stockées: la valeur, le nom, le type (1=entier, 2=chaine, 3=réel, 4=entier à 1 indice, 5=chaine à 1 indice, 6= réel à 1 indice, 7=entier à 2 indices, 8=chaine à 2 indices, 9= réel à 2 indices), etc...

L'exemple que tu donnes sera tout à fait réalisable quand ADR(a$) fonctionnera:
Code:
i% = dll_call2("ma_routine_DLL",adr(a$),len(a$))
La plupart des DLL codées en C++ et qui utilisent des strings utilisent en fait un pointeur sur ce string. C'est le rôle de adr(a$) qui est un véritable pointeur sur a$.
Attention, en C++ un string se termine par la valeur 0.
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Klaus

Klaus


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

Problème avec instruction ADR() Empty
MessageSujet: Re: Problème avec instruction ADR()   Problème avec instruction ADR() EmptyLun 8 Mar 2010 - 17:43

Oui, j'ai vu la terminaison par on octet 0, dans Delphi aussi, dans certains types de strings.

J'attendrai la version opérationnelle de ces routines; je mets ma DLL au point en attendant, en utilisant Delphi.Je suis content d'avoir apparemment saisi correctement l'utilisation de ces fonctions, et ma conception de la DLL n'aura donc pas besoin d'être changée.

Merci pour tes efforts, et je t'approuve entièrement lorsque tu dis vouloir prendre ton temps et le faire calmement - je crois que c'est la seule façon de toucher à ces éléments délicats.

Cordialement Klaus
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Problème avec instruction ADR() Empty
MessageSujet: Re: Problème avec instruction ADR()   Problème avec instruction ADR() Empty

Revenir en haut Aller en bas
 
Problème avec instruction ADR()
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Version 9.17 : Problème avec l'instruction Message T
» Erreur 44:Boucle FOR / NEXT
» Bizarrerie avec l'instruction message T
» Problème avec select case Probleme réglé merci
» problème avec edit ou bien avec combo?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Un problème avec PANORAMIC?-
Sauter vers: