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
» Bataille navale SM
Problème avec instruction ADR() Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
Problème avec instruction ADR() Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
Problème avec instruction ADR() Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Problème avec instruction ADR() Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Problème avec instruction ADR() Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Problème avec instruction ADR() Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Problème avec instruction ADR() Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Problème avec instruction ADR() Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Problème avec instruction ADR() Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
Problème avec instruction ADR() Emptypar leclode Dim 21 Avr 2024 - 18:09

» trop de fichiers en cours
Problème avec instruction ADR() Emptypar Marc Dim 21 Avr 2024 - 2:41

» 2D_fill_color(résolu)
Problème avec instruction ADR() Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Problème avec instruction ADR() Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Problème avec instruction ADR() Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Problème avec instruction ADR() Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment : -39%
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
Voir le deal
399 €

 

 Problème avec instruction ADR()

Aller en bas 
3 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12274
Age : 74
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 : 7095
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 : 2381
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 : 12274
Age : 74
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 : 2381
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 : 12274
Age : 74
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 DIM et ADR

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: