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
» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Astuce : les variables sous Panoramic Emptypar Yannick Aujourd'hui à 18:32

» Philharmusique
Astuce : les variables sous Panoramic Emptypar jjn4 Aujourd'hui à 13:58

» PANORAMIC V 1
Astuce : les variables sous Panoramic Emptypar papydall Hier à 3:22

» select intégrés [résolu]
Astuce : les variables sous Panoramic Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Astuce : les variables sous Panoramic Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Astuce : les variables sous Panoramic Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Astuce : les variables sous Panoramic Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Astuce : les variables sous Panoramic Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Astuce : les variables sous Panoramic Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Astuce : les variables sous Panoramic Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Astuce : les variables sous Panoramic Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Astuce : les variables sous Panoramic Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Astuce : les variables sous Panoramic Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Astuce : les variables sous Panoramic Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Astuce : les variables sous Panoramic Emptypar jjn4 Ven 26 Avr 2024 - 17:39

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

 

 Astuce : les variables sous Panoramic

Aller en bas 
3 participants
AuteurMessage
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Astuce : les variables sous Panoramic Empty
MessageSujet: Astuce : les variables sous Panoramic   Astuce : les variables sous Panoramic EmptyMar 8 Fév 2011 - 10:55

En cherchant à déterminer l'adresse d'un tableau d'entier sous Panoramic, j'ai remarqué quelques petits trucs :

Dans le cas d'un réel ou d'un entier, la structure de définition d'une variable Panoramic semble faire 80 octets.
pour le vérifier :
Code:
dim a%,b% : print adr(b%)-adr(a%) ---> on obtient 80
dim a ,b  : print adr(b) -adr(a)  ---> on obtient aussi 80
La position du champ 'Value' dans la structure de définition est inconnue, par contre ce que l'on peut déduire :

Dans le cas d'entier suivi d'un réel, l'offset entre les 2 champs 'value' est de 92 octets.
Ce qui signifie que dans le cas d'un réel, le champs 'Value' se situe 12 octets plus bas que dans la structure d'un integer.

Pour le vérifier :
Code:
dim entier%,reel : print adr(reel)-adr(entier%) --> on obtient 92

Par déduction, si on fait l'inverse : 80 octets - 12 soit 68

Code:
dim reel,entier% :  print adr(entier%) - adr(reel)  --> on obtient bien 68.

De là on peut s'amuser à calculer l'adresse de plusieurs variables:

Code:
dim e1%,r1,r2,e2%

dim adr_base,adr_r1,adr_r2,adr_e2

adr_base = adr(e1%)
adr_r1=adr_base +80 + 12
adr_r2=adr_r1+80
adr_e2=adr_r2+80 -12
print "adr(r1):";adr(r1);" adr_r1:";adr_r1
print "adr(r2):";adr(r2);" adr_r2:";adr_r2
print "adr(e2%):";adr(e2%);" adr_e2:";adr_e2

@Klaus:
Dans le cas de l'utilisation d'une fonction dans une DLL,
on peut très bien ne passer que l'adresse de la premiere variable et côté delphi, en déduire les autres...

Une petite contrainte : Cela implique de bien respecter coté Panoramic l'ordre de déclaration des variables utilisées par la Dll.
Code:
function RecupParamInt(pParam1:pInteger;paramNumber:integer):integer;
var
 i:integer;
begin
  for i :=1 to paramNumber-1 do Inc(pParam1,20);
  result:=pParam1^;
end;

PS: Pas la peine de faire le test : pour les tableaux ça ne fonctionne pas ! Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




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

Astuce : les variables sous Panoramic Empty
MessageSujet: Re: Astuce : les variables sous Panoramic   Astuce : les variables sous Panoramic EmptyMar 8 Fév 2011 - 15:06

Bien intéressant tout ça, ami Nardo.
Ne manque plus que savoir lire le contenu de la mémoire à l'adresse indiquée (genre Peek), pour pouvoir tracer le contenu de certaines variables...
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Astuce : les variables sous Panoramic Empty
MessageSujet: Re: Astuce : les variables sous Panoramic   Astuce : les variables sous Panoramic EmptyMar 8 Fév 2011 - 15:24

Bonjour JL35 !
Le petit bout de code en Delphi permet justement de faire l'équivalent d'un peek...
L'interet de la chose c'est surtout lorsqu'on se retrouve avec un nombre important de paramètres à faire passer à une dll.
Par exemple au lieu d'écrire ceci :
retour% = dll_call6("MaFonction",adr(param1),adr(param2),...,adr(param6))

avec ce petit calcul d'adresse tu pourrais écrire :
retour%= dll_call1("MaFonction",adr(param1))
et puis la fonction dans la dll ferait le calcul nécessaire pour récupérer les autres paramètres...

Donc plus de limitation à 6 paramètres...
Bon, des fonctions avec plus de 6 paramètres, ça ne doit pas être courant... ou alors la fonction est mal écrite. Pour l'instant j'en suis là...
Cela prendra vraiment tout son sens si j'arrive à identifier l'adresse du tableau...
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




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

Astuce : les variables sous Panoramic Empty
MessageSujet: Re: Astuce : les variables sous Panoramic   Astuce : les variables sous Panoramic EmptyMar 8 Fév 2011 - 18:39

L'inconvénient pour moi c'est que je ne sais pas utiliser un bout de code en Delphi, même petit !
Mais enfin il y a de l'idée, et je sens bien que tu vas nous faire quelque chose d'utilisable par tous.
Y compris les non Delphiniens Very Happy

N'écoute pas Pascal (qui comme chacun sait est l'ancêtre de Delphi) qui disait: "l'imagination est maîtresse d'erreur et de fausseté" (Pensées)
Revenir en haut Aller en bas
Klaus

Klaus


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

Astuce : les variables sous Panoramic Empty
MessageSujet: Re: Astuce : les variables sous Panoramic   Astuce : les variables sous Panoramic EmptyMar 8 Fév 2011 - 19:13

J'avais essayé des explorations similaires, au début de mes travaux avec les DLL. J'ai abandonné assez vite car il n'y a aucun moyen, comme tu le dis, d'accéder des tableaux, ni d'ailleurs des variables string (nom$), ce qui limite singulièrement cette méthode d'accès.

Jack est en train d'implémenter les plugins, et je ne doute pas qu'il donnera accès aux variables de tout type, sinon, je ne vois pas bien l'intérêt. Pour ma part, j'attends cela, et je pense que cela sera assez intéressant.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Astuce : les variables sous Panoramic Empty
MessageSujet: Re: Astuce : les variables sous Panoramic   Astuce : les variables sous Panoramic EmptyMer 9 Fév 2011 - 22:39

L'adresse d'un tableau n'est franchement pas évidente à trouver :
12 octets plus "haut" que le champs "value" dans la structure de définition, il y a un pointeur sur apparemment une autre structure:
on retrouve dedans le nom de la variable codé en DWORD en format intel (poids faible d'abord suivi du poids fort)
ce qui donnerai par exemple pour la variable "tst%" -> "st%t"
quand au reste c'est incompréhensible...
Comme le dis Klaus, "wait & see" les plugins sous Panoramic... Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Contenu sponsorisé





Astuce : les variables sous Panoramic Empty
MessageSujet: Re: Astuce : les variables sous Panoramic   Astuce : les variables sous Panoramic Empty

Revenir en haut Aller en bas
 
Astuce : les variables sous Panoramic
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Astuce : échanger le contenu de deux variables a et b
» les sous-programmes, les variables globales et locales
» Astuce pour executer XP sous Windows 7 avec toutes les appli
» Structure des variables en Panoramic
» PANORAMIC SOUS ANDROID

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: