| KGF_dll - nouvelles versions | |
|
+13The Gamer Nardo26 silverman Minibug Pedro mindstorm pascal10000 Jicehel papydall Jean Claude JL35 Yannick Klaus 17 participants |
|
Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 11 Mai 2015 - 3:35 | |
| Nouvelle version: KGF.dll V4.73 du 11/05/2015
Nouveautés: Nouvelles fonctions de gestion de mémoire dynamique: HeapID% = dll_call0("GetDynamicMemoryID") : ' récupérer le handle de la gestion dynamique de la mémoire MemoryID% = dll_call2("RequestDynamicMemory",HeapID%,HeapSize%) : ' créer une portion de mémoire dynamique res% = dll_call2("FreeDynamicMemory",HeapID%,MemoryID%) : ' libérer une portion de mémoire dynamique res% = dll_call2("GetDynamicMemorySize",HeapID%,MemoryID%) : ' retourner la taille d'une portion de mémoire dynamique res% = dll_call3("CopyDynamicMemory",dest%,org%,size%) ! ' copier une zone mémoire dans une autre
Modules modifiés: KGF.dll
La doc suivra. Les sources sont à jour.
Ces fonctions ont été créées suite à un code de Papydall !
EDIT
Commentaire corrigé selon la remarque justifiée de Papydall !
Dernière édition par Klaus le Lun 11 Mai 2015 - 10:43, édité 1 fois | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: KGF_dll - nouvelles versions Lun 11 Mai 2015 - 3:51 | |
| - Klaus a écrit:
- res% = dll_call2("GetDynamicMemorySize",HeapID%,MemoryID%:integer) : ' retourner la taille d'une portion de mémoire dynamique
Heu, on n’est pas sous delphi ! Je suis content d'avoir été (même de loin) à l'origine de ces nouvelles fonctions. Bravo Klaus. Tu fais du bon travail. Une fois de plus | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Lun 11 Mai 2015 - 4:34 | |
| Bonjour Klaus, Merci pour l'aide en ligne sur ton site. Bien pratique et là au moins on risque plus de la perdre.... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 12 Mai 2015 - 0:22 | |
| En poursuivant mes essais avec la mémoire dynamique (heap), je suis en train de développer des fonctions qui permettent des choses assez inédites. Toutes concernent des tableaux d'entiers.
Ce qui marche déjà: - copier un tableau 2 dimensions dans un tableau 1 dimension - copier un tableau 1 dimension dans un tableau 2 dimensions - copier un tableau 1 dimension dans un tableau 1 dimension
D'autres sont en cours: - copier un tableau 1 dimension dans la mémoire dynamique - copier un tableau 2 dimensions dans la mémoire dynamique - copier la mémoire dynamique dans un tableau 1 dimension - copier la mémoire dynamique dans un tableau 2 dimensions
Les copies pour lesquelles un tableau 1 dimension est la cible, peuvent effacer (mettre à zéro) le reste du tableau si les données à copier ne suffisent pas à remplir le tableau. Ceci est géré par un paramètre.
J'ai eu quelques surprises avec la gestion interne de Panoramic pour l'allocation de mémoire des tableaux en 2 dimensions, mais j'ai percé le mystère et cela se passe maintenant sans heurt, dans tous les cas. Donc, encore un peu de patience et ces fonctions seront publiées ! | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF_dll - nouvelles versions Mar 12 Mai 2015 - 0:58 | |
| Là, je ne suis pas dedans, pour le moment, je ne vois pas encore l'usage, mais je suis sûr que Klaus nous fera la démonstration de l'utilité de ces nouvelles fonctions. Maintenant que Klaus maitrise le sujet, c'est certainement le début d'une longue série. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 12 Mai 2015 - 1:27 | |
| Pour vous donner un avant-goût, j'ai mis sur le WebDav et sur mon site, une version préliminaire de KGF.dll sans modification de numéro de version, avec les 3 fonctions déjà opérationnelles: - Code:
-
res% = dll_call6("CopyIntegerArray2Dto1D",dest%,destdim%,org%,orgdim1%,orgdim2%,zero%) res% = dll_call5("CopyIntegerArray1Dto2D(dest%,destdim1%,destdim2%,org%,orgdim%) res% = dll_call5("CopyIntegerArray1Dto1D(dest%,destdim%,org%,orgdim%,zero%)
Et voici une démo qui montre le résultat: - Code:
-
' heap_and_tableaux.bas
dim l%, c%, i%, res%, adr_picture% dim canvas%(2047), canvas1%(127), canvas2%(3,7)
dll_on "KGF.dll"
list 2 : top 2,10 : left 2,60 : height 2,300 : width 2,300
' charger canvas2% avec des valeurs initiales for l%=0 to 3 for c%=0 to 7 canvas2%(l%,c%) = l%*1000 + c% next c% next l% ' placer deux valeurs dans canvas%, au-delà de l'espace nécessaire pour copier canvas2% canvas%(32)=123 canvas%(33)=124 ' copier canvas2% dans canvas%, avec effacement des données au-delà res% = dll_call6("CopyIntegerArray2Dto1D",adr(canvas%),40,adr(canvas2%),3,7,1) ' afficher le résultat item_add 2,"canvas2% ==> canvas%" for l%=0 to 45 item_add 2,str$(l%)+": "+str$(canvas%(l%)) next l%
' effacer canvas2% for l%=0 to 3 for c%=0 to 7 canvas2%(l%,c%) = -1 next c% next l% ' recopier canvas% dans canvas2% res% = dll_call5("CopyIntegerArray1Dto2D",adr(canvas2%),3,7,adr(canvas%),40) item_add 2,"canvas% ==> canvas2%" for l%=0 to 3 for c%=0 to 7 item_add 2,str$(l%)+","+str$(c%)+": "+str$(canvas2%(l%,c%)) next c% next l%
' initialiser canvas1% for l%=0 to 127 canvas1%(l%) = 123 next l% ' copier canvas% dans canvas1%, en effaçant les données au-delà de la zone copiée jusqu'à 40 res% = dll_call5("CopyIntegerArray1Dto1D",adr(canvas1%),40,adr(canvas%),31,1) item_add 2,"canvas% ==> canvas1%" for l%=0 to 127 item_add 2,str$(l%)+": "+str$(canvas1%(l%)) next l%
end
Vous voyez tout l'intérêt: pouvoir dupliquer un tableau en une seule ligne, éventuellement avec effacement de la zone non utilisée si la cible est un tableau en 1 dimension. Cela peut être combiné avec les commandes de FILEBIN_READ_BLOCK_xxx, par exemple. Je suis en train de mettre au point les autres fonctions, qui permettent de garder une copie d'un tableau de 1 ou 2 dimensions dans la mémoire dynamique, et de les restituer à volonté. Ce qu'il faut savoir, que Panoramic stocke les données d'un tableau en 1 dimension en mémoire dans une seule zone contigüe. Mais ce n'est pas vrai pour les tableaux en 2 dimensions, pour lesquels la structure est plus complexe, et varie d'ailleurs en fonction de la taille de la deuxième dimension. Et oui, il doit y rester des résidus de programmation, du passage de 1 dimension à 2 dimension, ou une tentatice d'optimisation, je ne sais pas. En tout cas, j'ai décrypté la structure ! | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: KGF_dll - nouvelles versions Mar 12 Mai 2015 - 2:18 | |
| J’ai testé : c’est fantastique. Je suis sûr que tu es tombé sur une mine de diamants. Attention de te perdre dans les méandres de la ROM ! Il sera difficile de te repêcher. La KGF.DLL risque de grossir plus que PANORAMIC à force de l’alimenter avec des nouvelles fonctions à un rythme effréné. Mais le grand gagnant c'est, bien sûr, le Panoramicien. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 21 Mai 2015 - 0:13 | |
| Nouvelle version: KGF.dll V4.74 du 21/05/2015Nouveautés: Nouvelles fonctions de gestion de capture de niveau de volume du son de l'ordinateurModules modifiés: KGF.dllLa doc suivra. Les sources suivront. Les fonctions disponibles à ce jour sont: - Code:
-
' déclarer les variables recevant le volume: dim vLeft%, vRight%
' se connecter au système audio: res% = dll_call5("ConnectToAudioMixer",obj%,AutoStart%,Scale%,adr(vLeft%),adr(vRight%)) ' obj%: objet parent (en général object_internal(0) ) ' Autostart%: 0=./. 1=start immédiat de la capture ' Scale%: 0=./. n>0=le volume est mappé sur l'intervalle [0..Scale%] ' vLeft%, vRight%: variables recevant la valeur du volume du canal gauche et droite
' démarrer la capture: res% = dll_call0("StartAudioCapture")
' arrêter la capture: res% = dll_call0("StopAudioCapture")
Ces fonctions sont pleinement opérationnelles. Et voici une petite démo: - Code:
-
' test_VU_metre.bas
label connect, start, stopx, tick
dim vLeft%, vRight%, res%
dll_on "KGF.dll"
timer 1 : timer_interval 1,100 :on_timer 1,tick
button 10 : top 10,10 : left 10, 10 : caption 10,"On" : on_click 10,connect button 11 : top 11,20 : left 11,110 : caption 11,"Start" : on_click 11,start button 12 : top 12,20 : left 12,210 : caption 12,"Stop" : on_click 12,stopx
alpha 21 : top 21,60 : left 21,10 : caption 21,"Left:" alpha 22 : top 22,60 : left 22,50 alpha 23 : top 23,60 : left 23,110 : caption 23,"Right:" alpha 24 : top 24,60 : left 24,150
end
connect: res% = dll_call5("ConnectToAudioMixer",object_internal(0),0,0,adr(vLeft%),adr(vRight%)) ' message "Result: "+str$(res%) return start: res% = dll_call0("StartAudioCapture") ' message "Result: "+str$(res%) return stopx: res% = dll_call0("StopAudioCapture") ' message "Result: "+str$(res%) return
tick: timer_off 1 caption 22,str$(vLeft%) caption 24,str$(vRight%) timer_on 1 return
Dernière édition par Klaus le Mer 3 Juin 2015 - 12:09, édité 1 fois | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 24 Mai 2015 - 1:04 | |
| Klaus, j' ai un souci de doc pour open office tous les liens de fonctions ( écriture...) renvoient vers la même page. cela veut il dire qu' il faut prendre ces fonctions chez excell ?... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 24 Mai 2015 - 1:14 | |
| J'ai remis KGF.chm sur mon site et mon WebDav, par sécurité. Maintenant, avec certitude, la doc en ligne est en phase avec le fichier CHM déposé sur ces deux sites. Mais: seules les fonctions suivantes sont documentées pour le moment: - Citation :
- StartSpreadSheet
ConnectToSpreadSheet TerminateSpreadSheet
OpenSpreadSheet SaveSpreadSheet SaveSpreadSheetAs CloseSpreadSheet
NewSpreadSheetPage ActivateSpreadSheetPageByIndex ActivateSpreadSheetPageByName RemoveSpreadSheetPageByIndex RemoveSpreadSheetPageByName Pour les autres, la doc est en cours. Regarde stp le programme de démo - il contient des exemples d'appel pour ces fonctions. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 24 Mai 2015 - 1:26 | |
| | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Dim 24 Mai 2015 - 8:43 | |
| Bonjour a tous ! @Klaus : Je viens de tester les fonctions de capture de niveau de volume du son de l'ordinateur. Ca fonctionne parfaitement. Encore merci Il ne me reste plus qu'a rajouter les LEDs de Jicehel comme jamais prévu. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 3 Juin 2015 - 12:11 | |
| Nouvelle version: KGF.dll V4.75 du 03/06/2015
Nouveautés: - correction d'un bug en utilisant plusieurs objets XML - petite correction de la doc XML
Modules modifiés: KGF.dll KGF.chm
Les sources sont à jour. | |
|
| |
jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: KGF_dll - nouvelles versions Ven 5 Juin 2015 - 8:23 | |
| Salut, J'ai une question, est ce que KGF_SUB.bas est à jours en Meme temps que ta dll ? Ce projet est t'il toujours mis à jour, ou est il préférable d'utiliser directement ta dll? Si il est à jours, esqu'il utilise des label ou variable qui rentrerai en conflit avec le programme principal ? Ou cela est t'il totalement transparent en utilisant que des SUB ?
Autre chose qui n'a rien à voir, pourquoi la tu appeler ta dll KGF ? (Je suis curieux^^) Esque la documentation CHM ou *.pdf est à jour pour KGF ?
Merci | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 5 Juin 2015 - 8:51 | |
| - Citation :
- J'ai une question, est-ce que KGF_SUB.bas est à jours en Meme temps que ta dll ?
Ce projet est t'il toujours mis à jour, ou est il préférable d'utiliser directement ta dll ? J'avoue que je n'ai pas fait évoluer KGF_SUB.bas depuis un moment, déjà. Il est vrai aussi que je n'en ai pas eu la demande. Il doit manquer facilement une centaine de fonctions, dans KGF_SUB.bas... - Citation :
- Si il est à jour, es-ce qu'il utilise des labels ou variables qui rentreraient en conflit avec le programme principal ? Ou cela est-il totalement transparent en utilisant que des SUB ?
Les SUB génnèrent elles-même leurs propres noms de variables et labels. Ces noms commencent tous par le nom de la SUB, suivi éventuellement de $, de % ou d'une extension de nom introduite par "_". Et les noms des SUBs commencent tous par le nom de la fonction DLL correspondante, éventuellement avec une extension. Ainsi, à moins d'un hasard extraordinaire, il n'y aura jamais de conflit de nommage en utilisant ces SUBs. - Citation :
- Autre chose qui n'a rien à voir, pourquoi la tu appeler ta dll KGF ? (Je suis curieux^^)
Il s'agit des initiales de mon nom. - Citation :
- Est-ce que la documentation CHM ou *.pdf est à jour pour KGF ?
la documentation CHM est pratiquement à jour. Seules la documentation des fonctions de gestion transparente Excel/OpenCalc ne sont pas complètement documentées (sauf omission de ma part). Mais c'est en cours. La documentation PDF est abandonnée. Par contre, il y a une documentation en ligne, accessible via mon site (page d'accueil, cadre en bas à gauche "Liens utiles"). Cette docimentation en ligne est identique à la documentation CHM. | |
|
| |
jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: KGF_dll - nouvelles versions Ven 5 Juin 2015 - 9:11 | |
| Ok ça marche, Par rapport à tes reponse mes choix sont les suivants :
1-J'utiliserai directement la dll puisque c'est le plus ergonomique, le moin risquer et le plus propre.
2-Je comprend pourquoi tu la appeler KGF XD c'est comme si on t'impleméter dans un programme ; )
3-j'utiliserai principalement ta documentation en ligne, puisque je peux la consulter de mon téléphone quand j'ai pas d'ordinateur sous la main. De plus, je serai sur de lire la dernière version de documentation.
Je suis actuellement en train d'apprendre à utiliser ta DLL Je pensais que c'était plus compliqué que ça^^ J'ai même vu une fonction pour mettre une fenêtre transparente c'est hallucinant Tu as fait un travail monstrueux, c'est dommage que le logiciel PANORAMIQUE est uniquement de Jack, je suis sur qu'il serai d'avantage en évolution, si le code source de panoramic ete en open source, on proposerai directement à Jack des modifications du logiciel. C'est luis qui tiendrai les reines mais on pourrais luis proposer directement des codes différents (github) Panoramic est vraiment Genial pour sa logique de programmation qui concilie faciliter avec libertés et efficacités. Bref je suis aussi en train de rapprendre tout panoramic pour le retard que j'ai accumuler, par exemple j'ai découvert la fonction SUB hier ! Elle est vraiment genial ! Je ferais mes api avec cette commande, c'est mieu que des label et return dans certain cas. Bref j'y retourne ;D | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 5 Juin 2015 - 9:15 | |
| | |
|
| |
jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: KGF_dll - nouvelles versions Ven 5 Juin 2015 - 9:52 | |
| Ok j'ai une nouvelle question et une proposition
On peux charger uniquement 1 dll dans panoramic (charger)
Partant de la, on a le choix de choisir Laquel, je suis donc partie sur kernel32 pour la gestion de la souris.
Je sais que tu avais cree une dll qui permetter de gerer toutes les autres, (je me souviens plus de son nom)
Apres d'avoir découvert KGF, je souhaite l'utiliser mais je me dit aussi que je m'oblige donc à n'utiliser que la tienne. Je fait ce choix car je dois optimiser le programme pour éviter de charger décharger une dll 60 fois par seconde dans mon jeux.
Donc la question, somme nous obliger d'utiliser la dll qui les gere toutes ou le mieu est de charger décharger dans un programme qui le ferai 60 fois par seconde?
Enfin ma proposition : si tu sais cree une dll qui les gere toute, pourquoi tu ne rajouterai pas une fonction dans KGF qui le face? Comme ça on aurai la possibilité de charger une fois ta dll KGF, et l'on pourrai charger les fonctions d'autre dll par KGF ?
(C'est un exemple en haut, je sais que KGF gere la souris, la vrais question est pouvons nous utiliser 2 dll charger en Meme temps?)
Qu'en pense tu ? Esque c'est une bonne ou mauvaise idee ? Est-ce ergonomique ou performent ? | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 5 Juin 2015 - 10:46 | |
| - Citation :
- Enfin ma proposition : si tu sais cree une dll qui les gere toute, pourquoi tu ne rajouterai pas une fonction dans KGF qui le face?
Comme ça on aurai la possibilité de charger une fois ta dll KGF, et l'on pourrai charger les fonctions d'autre dll par KGF ?
Une réponse qui répond à toutes les interrogations de ton post: c'est déjà fait ! Regarde la rubrique "Gestion des DLLs dynamiques" - tu as tout ce qu'il faut pour piloter s'autres DLLs à partir de KGF.dll. Et plusieurs DLLs simultanément s'il le faut... | |
|
| |
jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: KGF_dll - nouvelles versions Ven 5 Juin 2015 - 11:29 | |
| Mdr ! Tu a reponse à tout XD. Merci ! Tu ma tuer ;'D T'est trop fort | |
|
| |
sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: KGF_dll - nouvelles versions Ven 5 Juin 2015 - 12:15 | |
| salut KGF_dll évolue à vitesse grand V , merci Klaus ! J'ai une question : serait_il possible d'envisager une mise à jour automatique pour KGF_dll ? | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 5 Juin 2015 - 12:25 | |
| Regarde la fonction KGFupdate dans la rubrique des "Fonctions diverses"...
EDIT
Je pense que notre ami Ygeronimi s'en sert régulièrement. | |
|
| |
jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: KGF_dll - nouvelles versions Ven 5 Juin 2015 - 12:54 | |
| Tu vois, il a tout prévus ;D | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 6 Juin 2015 - 12:51 | |
| Nouvelle version: KGF.dll V4.76 du 06/06/2015
Nouveautés: - correction d'un bug dans la fonction IdentifyMyFTP
Modules modifiés: KGF.dll
La doc est inchangée. Les sources sont à jour. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 6 Juin 2015 - 13:49 | |
| Je suis à jour ! La date du fichier n' est pas bonne : 06/05/2015 au lieu de 06/06/2015 Klaus...tu viens d' inventer la machine à remonter le temps... | |
|
| |
Contenu sponsorisé
| Sujet: Re: KGF_dll - nouvelles versions | |
| |
|
| |
| KGF_dll - nouvelles versions | |
|