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
» Gestion d'un système client-serveur.
Nouvelle utilisation des bibliothèques Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Nouvelle utilisation des bibliothèques Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Nouvelle utilisation des bibliothèques Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Nouvelle utilisation des bibliothèques Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Nouvelle utilisation des bibliothèques Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Nouvelle utilisation des bibliothèques Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Nouvelle utilisation des bibliothèques Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Nouvelle utilisation des bibliothèques Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Nouvelle utilisation des bibliothèques Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Nouvelle utilisation des bibliothèques Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Nouvelle utilisation des bibliothèques Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Nouvelle utilisation des bibliothèques Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Nouvelle utilisation des bibliothèques Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Nouvelle utilisation des bibliothèques Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Nouvelle utilisation des bibliothèques Emptypar Jack Mar 30 Avr 2024 - 20:40

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 à ne pas rater :
Cartes Pokémon EV6.5 : où trouver le Bundle Lot 6 Boosters Fable ...
Voir le deal

 

 Nouvelle utilisation des bibliothèques

Aller en bas 
+5
Francis-mr
Klaus
papydall
Yannick
Jack
9 participants
AuteurMessage
Jack
Admin
Jack


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

Nouvelle utilisation des bibliothèques Empty
MessageSujet: Nouvelle utilisation des bibliothèques   Nouvelle utilisation des bibliothèques EmptyMar 8 Déc 2015 - 21:42

L'utilisation des DLLs avec DLL_ON, DLL_CALLn() et DLL_OFF ne m'a jamais satisfait.
Ces commandes et fonctions avaient été écrites en un week-end suite à une demande sur le forum et ont été très peu améliorées.
Elles ont des limitations, mais sont néanmoins très utiles car elles permettent d'étendre les possibilités du langage et on a vu un Panoramicien (Klaus) développer sa propre DLL et l'enrichir presque journellement.


Rappel

Je voudrais juste rappeler ici pour les débutants la différence d'utilisation et de syntaxe entre commande et fonction.

Commande :
Utilisation : une commande est un ordre qu'on donne et qui s'exécute aussitôt.
Syntaxe : une commande est constituée d'un mot-clé suivi ou pas de paramètres. S'il y a des paramètres, ils sont séparés par des virgules.

exemples de commandes
CLS efface un objet
2D_CIRCLE 100,200,50 trace un cercle de centre (100,200) et de rayon 50

Fonction:
Utilisation : une fonction est comme une question qu'on pose en donnant ou pas des paramètres, et qui fournit un résultat.
Syntaxe : s'il y a des paramètres, ils sont séparés par des virgules et sont placés entre parenthèses.

exemples de fonctions
a=cos(10) a vaut le cosinus de 10 degrés
a$=time$ a$ vaut "l'heure actuelle"


Revenons aux bibliothèques.

Tout en gardant ce qui existe, pour des raisons de compatibilité ascendante (afin que les anciens sources fonctionnent sur toute nouvelle version de Panoramic), je voudrais proposer dans la prochaine version (V 0.9.27i3) que je mettrais en ligne sous peu, quelque chose de beaucoup plus souple à utiliser.

Le principe est le suivant :
On déclare les bibliothèques et on leur affecte un numéro.
On décrit les commandes et fonctions utilisées dans une bibliothèque qu'on a déclarée et on leur affecte un mot-clé.
Puis on les utilise comme on utiliserait les commandes et fonctions de Panoramic.

Exemples

Si on a une fonction dans une bibliothèque qui multiplie 2 nombres et qui retourne leur produit, on peut alors l'appeler "multip" et l'utiliser comme suit :

Code:
a=10
b=3
print multip(a,b)
autre exemple, si on a une commande dans une bibliothèque qui colore le fond d'écran en jaune et qu'on l'appelle "jaune" et une autre commande qui affiche un titre sur la fenêtre de base (Form0), qu'on appelle "affiche", on les utilise comme suit :

Code:
jaune
affiche "bonjour"
En résumé, on se crée ses propres commandes et fonctions avec les noms qu'on choisit.

Autres avantages :
- on peut utiliser plusieurs bibliothèques simultanément,
- il n'y a plus besoin d'ouvrir et de fermer les bibliothèques (comme on le faisait avec les commandes DLL_ON et DLL_OFF),
- ce nouveau processus fonctionne sous Windows (une bibliothèque est une DLL), sous MAC OS X et sous Android.


Entrons dans le détail

Déclaration d'une bibliothèque :

LIBRARY N, L$

N : numéro de la bibliothèque
L$ : nom absolu ou relatif de la bibliothèque (exemple : ma_lib.dll)

déclaration d'une commande :

COMMAND CP$,CL$,N,T$,C$

CP$ : nom de la commande pour PANORAMIC
CL$ : nom de la commande dans la bibliothèque (attention, CL$ est sensible à la casse : respectez majuscules et minuscules)
N : numéro de la bibliothèque dans laquelle on trouve la commande
T$ : chaine de caractères donnant le type de chaque paramètre : I (entier) R (réel) S (chaine de caractères)
C$ : convention d'appel de la commande


exemple :
Code:
command "init","cdtInit",1,"II","stdcall"
losque qu'on utilise le mot-clé Panoramic INIT, il y a en fait appel de la fonction cdtInit de la DLL numéro 1, et 2 entiers lui sont passés en paramètre.


déclaration d'une fonction :

FUNCTION CP$,CL$,N,T$,C$

CP$ : nom de la fonction pour PANORAMIC
CL$ : nom de la fonction dans la bibliothèque (attention, CL$ est sensible à la casse : respectez majuscules et minuscules)
N : numéro de la bibliothèque dans laquelle on trouve la fonction
T$ : chaine de caractères donnant le type de chaque paramètre : I (entier) R (réel) S (chaine de caractères)
C$ : convention d'appel de la fonction

Le type de retour est dans le nom de la fonction Panoramic:
fonction "fn","fonction_dans_dll",1,"II","stdcall" définit que fonction_dans_dll retourne un réel
fonction "fn%","fonction_dans_dll",1,"II","stdcall" définit que fonction_dans_dll retourne un entier
fonction "fn$","fonction_dans_dll",1,"II","stdcall" définit que fonction_dans_dll retourne une chaine de caractères

Exemples :

Code:
dim w%,h%,a%

library 1,"cards.dll"
command "init","cdtInit",1,"II","stdcall"
command "draw","cdtDraw",1,"IIIIII","stdcall"
command "fin","cdtTerm",1,"","stdcall"

init adr(w%),adr(h%)
draw handle_canvas(0),105,48,2,0,0
fin

Code:
library 1,"MyDLL.dll"
function "double","Double",1,"I","stdcall"
function "multiplie","Multiply",1,"II","stdcall"

dim a,b

a=4
b=6

print DOUBLE(a)
print MULTIPLIE(a,b)


Encore autre chose.
Si une commande ou une fonction qu'on déclare est identique à un mot-clé de Panoramic, c'est le mot-clé de Panoramic qui est pris en compte.
Il y aura donc une erreur à l'exécution si la syntaxe (nombre de paramètres ou typê de paramètres) n'est pas celle de Panoramic.

De même, si vous déclarez une commande ou une fonction qui existe déjà en natif et avec la même syntaxe, c'est la commande ou fonction native de Panoramic qui sera exécutée.


Attention !

Maintenant que vous êtes emballés, je vais vite modérer votre impatience.
C'est le tout début de cette nouvelle façon de faire, tout n'est pas encore complètement codé et il y a des limitations.
Pour le moment,
- cela ne fonctionne qu'avec 6 paramètres maximum,
- cela ne fonctionne que lorsque les paramètres sont entiers (d'où les IIII dans les exemples)
- cela ne fonctionne que lorsque les fonctions retournent des nombres
- le nombre de bibliothèques est limité à 10

_________________
Nouvelle utilisation des bibliothèques Webdav username : panoramic@jack-panoramic password : panoramic123


Dernière édition par Jack le Jeu 10 Déc 2015 - 20:54, édité 9 fois
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Yannick




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

Nouvelle utilisation des bibliothèques Empty
MessageSujet: re   Nouvelle utilisation des bibliothèques EmptyMar 8 Déc 2015 - 21:54

Tu fais bien de modérer les ardeurs...
lol!

Pour la partie technique, je préfère laisser Klaus répondre.
Pour l' instant c' est un peu flou dans mon esprit, il me faudra reprendre la lecture
quand je serai sorti du html et css... Laughing
Revenir en haut Aller en bas
Jack
Admin
Jack


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

Nouvelle utilisation des bibliothèques Empty
MessageSujet: Re: Nouvelle utilisation des bibliothèques   Nouvelle utilisation des bibliothèques EmptyMar 8 Déc 2015 - 22:07

C'est très simple comme principe : tu te crées tes propres mots-clés, et derrière tes mots-clés il y a des commandes et des fonctions dans des DLL.

_________________
Nouvelle utilisation des bibliothèques Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
papydall

papydall


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

Nouvelle utilisation des bibliothèques Empty
MessageSujet: Re: Nouvelle utilisation des bibliothèques   Nouvelle utilisation des bibliothèques EmptyMar 8 Déc 2015 - 22:09

Waaaaououou !
C’est une excellente nouvelle que je lis là.
Maintenant que tu nous as promis le bonheur,  je ne peux que prier pour que ça soit dans les meilleurs délais.
MERCI Jack, tu nous gâtes bien.
Qu’espérer de mieux comme cadeau de fin d’année ?
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




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

Nouvelle utilisation des bibliothèques Empty
MessageSujet: re   Nouvelle utilisation des bibliothèques EmptyMar 8 Déc 2015 - 22:18

Je comprends vite, le problème est qu' il faut m' expliquer longtemps.
lol!

Ne t' inquiètes pas Jack, je m' adapterai.
Wink
Revenir en haut Aller en bas
Klaus

Klaus


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

Nouvelle utilisation des bibliothèques Empty
MessageSujet: Re: Nouvelle utilisation des bibliothèques   Nouvelle utilisation des bibliothèques EmptyMar 8 Déc 2015 - 22:41

Super, Jack ! Je constate avec un réel plaisir que tu remets l'interface vers les DLLs sur l'ouvrage. Cela permet d'espérer de jolies choses.

J'ai quelques remarques à faire:

1. concernant la définition des fonctions:
Tu dis:
Citation :
command "fn","fonction_dans_dll",1,"II","stdcall" définit que fonction_dans_dll retourne un réel
command "fn","fonction_dans_dll",1,"II","stdcall" définit que fonction_dans_dll retourne un entier
command "fn$","fonction_dans_dll",1,"II","stdcall" définit que fonction_dans_dll retourne une chaine de caractères
Ce ne serait pas plutôt:
Citation :
function "fn","fonction_dans_dll",1,"II","stdcall" définit que fonction_dans_dll retourne un réel
function "fn%","fonction_dans_dll",1,"II","stdcall" définit que fonction_dans_dll retourne un entier
function "fn$","fonction_dans_dll",1,"II","stdcall" définit que fonction_dans_dll retourne une chaine de caractères
avec la commande FUNCTION en début de ligne, et l'ajout du "%" dans la 2ème ligne ?

2. les valeurs retournées:
Tu dis:
Citation :
Pour le moment,
- cela ne fonctionne qu'avec 6 paramètres maximum,
- cela ne fonctionne que lorsque les paramètres sont entiers (d'où les IIII dans les exemples)
- cela ne fonctionne que lorsque les fonctions retournent des nombres
a) Une fonction pourrait maintenant retourner un flottant, au lieu de l'entier exclusivement, aujourd'hui ? C'est déjà un progrès !
b) Le retour d'une chaîne de caractères semble prévu, puisque tu as prévu la troisième ligne dans la citation ci-dessus. Est-ce exact ?
c) 6 paramètres maximum. Donc, comme actuellement. Est-ce qu'un assouplissement est prévu ultérieurement ?
d) tous les paramètres sont entiers. Mais tu as prévu le paramétrage du type. Donc, tu prévois ultérieurement le passage les flottants et des chaînes de caractères. Est-ce exact ?

3. Quelque gros souhaits
a) tableaux:
je suppose que adr(), handle(), handle_canvas() et object_internal() pourront toujours être utilisés pour passer des paramètres à une fonction DLL. Mais il serait vraiment utile de pouvoir passer un tableau, ne serait-ce que d'une seule dimension (avec 2 dimensions, ce serait évidemment le summum !), sous forme de array(nom_du_tableau) par exemple. Ou alors adr(nom_du_tableau). On récupérerait alors, dans la DLL, l'adresse de l'élément (0) ou (0,0) du tableau. A la DLL de savoir gérer les dimensions du tableau qui pourraient éventuellement être passés dans des paramètres supplémentaires, comme ceci:
Code:
dim MonTableau%(5,8)
command "Charger","ChargerTableau",3,"III","stdcall"
Charger(5,8,array(MonTableau))
ou éventuellement:
Code:
dim MonTableau%(5,8)
command "Charger","ChargerTableau",3,"III","stdcall"
Charger(5,8,array("MonTableau"))
similaire à la syntaxe de la fonction variable(). Actuellement, il faut recourir à des subterfuges importants, comme l'utilisation du presse-papier, un DLIST ou un MEMO caché etc pour passer le contenu d'un tableau. C'est lourd, et ça pourrait être si élégant...
b) déclenchement d'évènements
actuellement, une fonction DLL n'a aucun moyen de déclencher directement une routine évènement Panoramic. Le seul moyen est de créer un EDIT caché avec un évènement ON_CHANGE en Panoramic, puis de changer le contenu de cet EDIT par un API SendMessage avec WM_SETTEXT ce qui déclenche l'évènement ON_CHANGE. On utilise alors le contenu du EDIT pour déterminer ce que la DLL a bien voulu signaler. Est-ce qu'on pourrait, tant qu'on y est, avoir une commande ON_DLL_EVENT qui indiquerait un label de ma manière suivante:
Code:
label event1, event2, ...
ON_DLL_EVENT 1,event1
ON_DLL_EVENT 2,event2
...
event1:
...
  return
event2:
...
  return
et dans la DLL, on appelerait l'API SEND_MESSAGE avec un code message à partir de WM_APP. Et Panoramic recevrait ce message dont le paramètre WPARAM contiendrait le numéro de l'évènement à déclencher. Ce serait une grande ouverture !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


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

Nouvelle utilisation des bibliothèques Empty
MessageSujet: Re: Nouvelle utilisation des bibliothèques   Nouvelle utilisation des bibliothèques EmptyMar 8 Déc 2015 - 23:30

Quand on assiste à une discussion entre grands, les petits comme moi doivent écouter pour apprendre et s’instruire.

Je lirai avec beaucoup d'attention les échanges entre Jack (créateur de Panoramic) et Klaus (maître ès DLL) study
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jack
Admin
Jack


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

Nouvelle utilisation des bibliothèques Empty
MessageSujet: Re: Nouvelle utilisation des bibliothèques   Nouvelle utilisation des bibliothèques EmptyMer 9 Déc 2015 - 8:20

Klaus a écrit:
Ce ne serait pas plutôt:
Citation :function "fn","fonction_dans_dll",1,"II","stdcall" définit que fonction_dans_dll retourne un réel
function "fn%","fonction_dans_dll",1,"II","stdcall" définit que fonction_dans_dll retourne un entier
function "fn$","fonction_dans_dll",1,"II","stdcall" définit que fonction_dans_dll retourne une chaine de caractèresavec la commande FUNCTION en début de ligne, et l'ajout du "%" dans la 2ème ligne ?
Evidemment... Embarassed
Je viens de corriger dans l'annonce.

Klaus a écrit:
Une fonction pourrait maintenant retourner un flottant, au lieu de l'entier exclusivement, aujourd'hui ? C'est déjà un progrès !
C'est prévu, mais cela n'est pas encore codé.

Klaus a écrit:
Le retour d'une chaîne de caractères semble prévu, puisque tu as prévu la troisième ligne dans la citation ci-dessus. Est-ce exact ?
Oui, c'est prévu, mais pas encore fait. Il faudra alors différencier les chaines de caractères (à zéro-terminal ou pas). J'envisage des fonctions de transformation comme NZT_TO_xxx ou xxx_TO_NZT (NZT=non-zero terminal) pour les paramètres ou pour exploiter le retour.

Klaus a écrit:
6 paramètres maximum. Donc, comme actuellement. Est-ce qu'un assouplissement est prévu ultérieurement ?
Oui, plus de 6 paramètres est envisagé.

Klaus a écrit:
tous les paramètres sont entiers. Mais tu as prévu le paramétrage du type. Donc, tu prévois ultérieurement le passage les flottants et des chaînes de caractères. Est-ce exact ?
Oui, mais pour l'instant, il n'y a que les paramètres entiers qui sont codés.

Klaus a écrit:
je suppose que adr(), handle(), handle_canvas() et object_internal() pourront toujours être utilisés pour passer des paramètres à une fonction DLL.
Bien sur. Et j'ajouterai les trans formations des chaines de caractères dont je parle plus haut.

Klaus a écrit:
il serait vraiment utile de pouvoir passer un tableau, ne serait-ce que d'une seule dimension (avec 2 dimensions, ce serait évidemment le summum !), sous forme de array(nom_du_tableau) par exemple. Ou alors adr(nom_du_tableau).
En Panoramic, les tableaux ne sont pas des valeurs contigües. Les valeurs ne se suivent pas car il y a des données internes entre les éléments du tableau.
Passer un pointeur, pourquoi pas, mais il va falloir connaître la structure des tableaux pour accéder aux valeurs.
Je regarde cela.

Klaus a écrit:
Le seul moyen est de créer un EDIT caché avec un évènement ON_CHANGE en Panoramic, puis de changer le contenu de cet EDIT par un API SendMessage avec WM_SETTEXT ce qui déclenche l'évènement ON_CHANGE. On utilise alors le contenu du EDIT pour déterminer ce que la DLL a bien voulu signaler.
Waou ! C'est pas mal comme système, mais compliqué. On va simplifier ça.

Klaus a écrit:
avoir une commande ON_DLL_EVENT qui indiquerait un label - - - et dans la DLL, on appelerait l'API SEND_MESSAGE avec un code message à partir de WM_APP. Et Panoramic recevrait ce message dont le paramètre WPARAM contiendrait le numéro de l'évènement à déclencher.
L'API SendMessage, de mémoire, demande un handle pour identifier le récepteur. Pour que ON_DLL_EVENT fonctionne, il faudrait que l'application appelle au préalable une commande/fonction de la DLL pour lui passer un handle.
Mais ON_DLL_EVENT est une bonne idée et je commence à coder quelque chose qui y ressemble. D'ailleurs le compilateur fonctionne un peu comme ça : il y a une messagerie à base de CopyData entre la DLL panoramic et le code généré par FreeBasic pour que la DLL puisse déclencher un événement de FreeBasic.

_________________
Nouvelle utilisation des bibliothèques Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Francis-mr




Nombre de messages : 186
Date d'inscription : 26/11/2012

Nouvelle utilisation des bibliothèques Empty
MessageSujet: Re: Nouvelle utilisation des bibliothèques   Nouvelle utilisation des bibliothèques EmptyMer 9 Déc 2015 - 8:27

Moi qui ne suis pas utilisateur des DLL, peut-être vais-je changer ?
Merci Jack pour ta constance.
Peux-tu nous des nouvelles de l'avancement du compilateur ?
Revenir en haut Aller en bas
Yannick




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

Nouvelle utilisation des bibliothèques Empty
MessageSujet: re   Nouvelle utilisation des bibliothèques EmptyMer 9 Déc 2015 - 10:39

@ Klaus,

Nouvelle utilisation des bibliothèques Noel_p10

Cà y est ! le père noël est passé !
Mais tu vas devoir nous faire une série de cours sur les dlls  Wink

@ Jack,

Je refais mon stock de Doliprane ( html5, css et Js ont épuisé le stock  Laughing )
Mais tout cela est très prometteur car cela ouvre Panoramic vers d' autres dlls.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Nouvelle utilisation des bibliothèques Empty
MessageSujet: Re: Nouvelle utilisation des bibliothèques   Nouvelle utilisation des bibliothèques EmptyMer 9 Déc 2015 - 10:43

Très prometteur.
@francis-mr: l'avantage sera justement que ce sera la librairie qui gérera les dll. Tu appelleras juste la commande ou la fonction y faisant appel.
Revenir en haut Aller en bas
papydall

papydall


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

Nouvelle utilisation des bibliothèques Empty
MessageSujet: Re: Nouvelle utilisation des bibliothèques   Nouvelle utilisation des bibliothèques EmptyMer 9 Déc 2015 - 13:21

Après tous ces éclaircissements, vous mettez ma patience en rude épreuve.
Mais comme « la patience est la plus utile de toutes les vertus », je saurai patienter le temps qu'il faut. sunny
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Nouvelle utilisation des bibliothèques Empty
MessageSujet: Re: Nouvelle utilisation des bibliothèques   Nouvelle utilisation des bibliothèques EmptyVen 30 Sep 2016 - 10:46

Bonjour jack
Peux tu nous dire où en est le développement de ces commandes stp?
Est ce que le non-fonctionnement des fonctions sans paramètres sera bientôt levé?  Car pour l'instant, ça nuit vraiment à l'intérêt de ces commandes(utilisation limité)
On peut rechercher si une library est chargé en mémoire, mais on ne peut pas savoir si un mot-clé existe déjà. Peux tu ajouter une commande du genre 'LIBRARY_KEYWORD_EXISTS("mot-clé")'?
Il y a un petit oubli; Dans certains cas, un message de déboguage apparait "Analyse_Ligne_Du Source. MOT-CLE EN LIBRAIRIE. ..."

Code:
dim hHeap%,pteur%


LIBRARY 1,"kernel32"
function "allocate_structure%","HeapAlloc",1,"III","stdcall"


dll_on "kernel32.dll"
   hHeap% = dll_call0("GetProcessHeap")    :' Obtenir le handle du heap du process appelé
dll_off


pteur% = allocate_structure%(hHeap%,0,100)
Revenir en haut Aller en bas
d.j.peters

d.j.peters


Nombre de messages : 77
Age : 59
Localisation : Germany
Date d'inscription : 31/07/2010

Nouvelle utilisation des bibliothèques Empty
MessageSujet: Re: Nouvelle utilisation des bibliothèques   Nouvelle utilisation des bibliothèques EmptyMar 1 Mai 2018 - 16:25

[english] Does library "command" not work with real numbers ?

"IIII" works:
LIBRARY 4,"opengl32"
' params: left%, bottom%, width%, height%
COMMAND "glViewport" ,"glViewport",4,"IIII","stdcall"

but "RRRRRR" crashes ?
' params: left, right, bottom, top, zNear, zFar
COMMAND "glFrustum","glFrustum",4,"RRRRRR","stdcall"

I use the latest version of Panoramic but in the HTML help files I can't find

sub end_sub, fnc end_fnc, library, command, function

DJ
Revenir en haut Aller en bas
http://shiny3d.de
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Nouvelle utilisation des bibliothèques Empty
MessageSujet: Re: Nouvelle utilisation des bibliothèques   Nouvelle utilisation des bibliothèques EmptyMar 1 Mai 2018 - 17:03

Librairy command/function are still in development. They only work with the Integers.

Bugs you need to know:
' commands:
' 1 parameter  : ok
' 2 parameters : ok
' 3 parameters : ok
' 4 parameters : ok
' 5 parameters : ok
' 6 parameters : ok

' functions:
' 0 parameter  : bad---->crash
' 1 parameter  : ok
' 2 parameters : ok
' 3 parameters : bad---->debug information appear
' 4 parameters : ok
' 5 parameters : bad---->crash
' 6 parameters : bad---->crash

'sub end_sub, fnc end_fnc, library, command, function' are news, and the release version is not published, which is why these commands are not in the help file.
You can found these last undocumented commands here
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2709
Date d'inscription : 13/09/2009

Nouvelle utilisation des bibliothèques Empty
MessageSujet: +++   Nouvelle utilisation des bibliothèques EmptyMar 1 Mai 2018 - 17:42

Ouahh, dur-dur, tout ça !
Mais ça devrait être intéressant !
scratch
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
d.j.peters

d.j.peters


Nombre de messages : 77
Age : 59
Localisation : Germany
Date d'inscription : 31/07/2010

Nouvelle utilisation des bibliothèques Empty
MessageSujet: Re: Nouvelle utilisation des bibliothèques   Nouvelle utilisation des bibliothèques EmptyMar 1 Mai 2018 - 17:59

@silverman thank you so much

now it's clear what is going on here here :-)

I run in to more trouble for example:

glTexImage2D(target%, level%, internal_format%, width%, height%, border%, format%, type%, pixels%)

needs 9 parameters dll_call0-6  nor command support it so I have to write it self with inline assembler.

In Panoramic does sub/fnc have a limit of number of parameters also ?

DJ
Revenir en haut Aller en bas
http://shiny3d.de
Contenu sponsorisé





Nouvelle utilisation des bibliothèques Empty
MessageSujet: Re: Nouvelle utilisation des bibliothèques   Nouvelle utilisation des bibliothèques Empty

Revenir en haut Aller en bas
 
Nouvelle utilisation des bibliothèques
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Bibliothèques de sous-programmes (bis... ou ter)
» En attendant l'Arlésienne: bibliothèques de sous-programmes
» Problème avec la fonction 'instr'.
» Utilisation USB
» Utilisation de SearchStringList.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Ce qui est en cours ...-
Sauter vers: