| Synedit Parameters | |
|
+3Jean Claude Minibug Yannick 7 participants |
|
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Ven 23 Juin 2017 - 19:19 | |
| Là, en réponds depuis une tablette, donc je peux pas faire de tests. Mais dans mon programme, j' utilise les deux formes d' appel. Pour Kgf j' utilise dll_on mais j' utilise aussi LIBRARY avec les procédures de Silverman. Peut être que l' utilisation simultanée des deux pose un souci avec Dll_off. Voir un confli entre les deux... | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Synedit Parameters Ven 23 Juin 2017 - 20:15 | |
| Ça, c'est une question pour Klaus. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Synedit Parameters Sam 24 Juin 2017 - 0:33 | |
| - Citation :
- Peut être que l' utilisation simultanée des deux pose un souci avec Dll_off.
Voir un confli entre les deux... Aucune idée... Jack saura certainement y répondre. Mon sentiment, mais ce n'est qu'un sentiment, c'est que les deux méthodes peuvent cohabiter sans se contrarier, car je suis certain que les méthodes d'implémentation derrière ces commandes sont totalement différentes. Mais je peux me tromper, et seul l'avis de Jack sera compétent. | |
|
| |
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Synedit Parameters Sam 24 Juin 2017 - 11:42 | |
| Bon, ça y est, j'ai clairement identifié le pb, et c'est un boulot pour Kaus Le coupable est KGF! Et placer un 'hide 0' avant de charger kgf empire les choses. - Code:
-
hide 0
dll_on "C:\Program Files\Panoramic Editor V 0.9.25\sources\kgf.dll" ' dll_on "C:\Program Files\Panoramic Editor V 0.9.25\sources\mylib.dll" dll_off
message "test" show 0 Ce code plante si j'appelle 'kgf.dll', mais fonctionne sans pb si j'appelle 'mylib.dll'(et d'autres dlls codées en freebasic/api windows). J'ai essayé avec plusieurs anciennes versions de kgf, le pb est apparu entre juin 2010 et decembre 2014. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 24 Juin 2017 - 11:53 | |
| Mais cela fonctionne si tu mets Dll_off en Rem. | |
|
| |
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Synedit Parameters Sam 24 Juin 2017 - 12:20 | |
| Oui mais c'est pas logique, si tu as besoin de permuter avec une autre dll, ça coince Dll_off décharge la dll de la mémoire, afin de libérer des ressources qui seront utilisées ailleurs. Même si les pc modernes sont équipés de beaucoup de mémoire, c'est pas une raison pour y laisser trainer des choses | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 24 Juin 2017 - 13:37 | |
| Oui, je suis d' accord avec toi Silverman. Mais cela jette le doute sur la culpabilité de KGF ou de DLL_OFF. | |
|
| |
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Synedit Parameters Sam 24 Juin 2017 - 19:21 | |
| Test_Outils: - Code:
-
hide 0 Variables() Constantes() Labels() Init() Gui() RempListOutils() show 0 end
sub Variables() dim no% dim HndF% dim Prg$ end_sub
sub Constantes() dim_local i% ' NOM DE L APPLICATION dim Titre$ : Titre$ = "Test Outils" Application_title Titre$ ' DOSSIERS dim Path$ : Path$ = dir_current$ if right$(Path$,1)="" : Path$ = left$(Path$,len(path$)-1) : end_if Path$ = Path$+"" ' FICHIER EN LECTURE\ECRITURE dim F_Or% : no%=no%+1 : F_Or%=no% dim F_Ow% : no%=no%+1 : F_Ow%=no% ' OBJETS dim Alph%(6) : for i%=1 to 6 : no%=no%+1 : Alph%(i%)=no% : next i% dim ListOutils% : no%=no%+1 : ListOutils%=no% dim BtnGo% : no%=no%+1 : BtnGo%=no% end_sub
sub Labels() label Clic label TraiteEvent end_sub
sub Init() end_sub
sub Gui()
height 0,250 width 0,500 top 0,50 left 0,50 font_name 0,"" font_size 0,8 font_bold 0 Caption 0,Titre$ on_user_event TraiteEvent alpha Alph%(1) top Alph%(1),10 left Alph%(1),10 caption Alph%(1),"Outils" combo ListOutils% width ListOutils%,200 top ListOutils%,top(Alph%(1))+height(Alph%(1))+5 left ListOutils%,10 button BtnGo% height BtnGo%,height(ListOutils%) width BtnGo%,50 top BtnGo%,top(ListOutils%) left BtnGo%,left(ListOutils%)+width(ListOutils%)+5 caption BtnGo%,"Lancer" cursor_point BtnGo% on_click BtnGo%,Clic alpha Alph%(2) top Alph%(2),top(ListOutils%)+height(ListOutils%)+10 left Alph%(2),10 caption Alph%(2),"Envoi :" alpha Alph%(3) top Alph%(3),top(ListOutils%)+height(ListOutils%)+40 left Alph%(3),10 font_color Alph%(3),0,0,200 caption Alph%(3),"-" alpha Alph%(4) top Alph%(4),top(ListOutils%)+height(ListOutils%)+70 left Alph%(4),10 caption Alph%(4),"Retours :" alpha Alph%(5) top Alph%(5),top(ListOutils%)+height(ListOutils%)+100 left Alph%(5),10 font_color Alph%(5),0,0,200 caption Alph%(5),"-"
alpha Alph%(6) top Alph%(6),top(ListOutils%)+height(ListOutils%)+130 left Alph%(6),10 font_color Alph%(6),0,0,200 caption Alph%(6),"-" end_sub
' ! MENU CLIC Clic: HndF% = handle_form(caption$(0)) Prg$ = item_index$(ListOutils%)+"|"+str$(HndF%)+" _" :' <----------------- caption Alph%(3),Prg$ Execute Prg$ return ' -
' ! TRAITEMENT DES EVENENEMTS TraiteEvent: off_user_event caption Alph%(5),str$(USER_EVENT_LPARAM) caption Alph%(6),str$(USER_EVENT_WPARAM) on_user_event TraiteEvent return ' -
sub RempListOutils() dim_local a$ dir_change Path$ a$ = file_find_first$ if file_extract_extension$(a$) = ".exe" and file_extract_name$(a$)<>"Test_Outils.exe" : item_add ListOutils%,a$ : end_if a$ = file_find_next$ while a$ <> "_" if file_extract_extension$(a$) = ".exe" and file_extract_name$(a$)<>"Test_Outils.exe" : item_add ListOutils%,a$ : end_if a$ = file_find_next$ end_while file_find_close end_sub PanoColor: - Code:
-
' DECLARATION ET INITIALISATION DES VARIABLES dim ReceiveHnd% : ReceiveHnd% = val(Param_value$(1)) :' <--------------------- dim event_index% : event_index%= 4024 dim user32% : user32%=2
' DECLARATION DES LABELS label clic
' DECLARATION DES LIBRARY LIBRARY user32%,"user32.dll"
' DECLARATION DES COMMAND command "call_user_event","SendMessageA",user32%,"IIII","stdcall"
' INTERFACE border_small 0 height 0,320 width 0,450 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2 caption 0,"PanoColor" font_name 0,"Arial" font_size 0,8 font_color 0,85,85,127
alpha 1 top 1,20 left 1,20 caption 1,"Paramètre reçu : "+str$(ReceiveHnd%)
button 2 top 2,60 left 2,20 caption 2,"Renvoi" cursor_point 2 on_click 2,Clic end
Clic: Send_Color() return
sub Send_Color() dim_local typ%,value% if ReceiveHnd%=0 : exit_sub : end_if typ%=1 value% = 500 call_user_event ReceiveHnd%,event_index%,typ%,value% call_user_event ReceiveHnd%,event_index%,typ%,value% :' <------------------ terminate end_sub le ' _' permet d'ajouter un paramètre à passer, mais il n'est pas traité puisque tu n'utilise que 'param_value$(1)' (Voir mes tests ici) et empêche le "message d'erreur chiant". J'ai mis une flèche à coté des modifs. Ca marche sur mon pc, est ce que ça marche aussi pour toi(avec p.e. V0928i10)? | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 24 Juin 2017 - 20:08 | |
| Oups... j' étais sur l' autre sujet et du coup j' ai zappé ta modif. J' ai testé en ajoutant le paramètre creux "_" Cela empêche le message. Maintenant, doubler l' envoie dans le programme appelé c' est une solution pour "Execute" en attendant mais c' est pas propre. Bon, c' est vrai que cela peut faire le temps que Jack répare. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Synedit Parameters Sam 24 Juin 2017 - 23:57 | |
| - Le coupable est KGF! Et placer un 'hide 0' avant de charger kgf empire les choses. a écrit:
Possible. Il est alors facile de faire DLL_ON en tout début de programme, puis faire le HIDE 0 ensuite. En effet, au chargement, KGF.dll tente de détecter automatiquement le handle de la form 0, et vu la technique utilisé, il semble probable que la form 0 doive être visible à l'écran pour que ça fonctionne. A vérifier. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Dim 25 Juin 2017 - 0:23 | |
| J' ai créé une multitude de programmes avec KGF et tous ou presque Ont un Hide 0 avant dll_on et je n' ai eu aucun souci. Si KGF avait un souci pour trouver le Handke du form 0, j'e n' aurai pas d' affichage des objets KGF au show 0. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Synedit Parameters Dim 25 Juin 2017 - 0:36 | |
| | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Dim 25 Juin 2017 - 1:21 | |
| Une piste me vient à l' esprit. Si DLL_OFF ferme bien une dll, peut être reste t il des ressources ouvertes des traces en mémoire. Et, peut être y a t il un souci à la réouverture de la dll quand elle fait appel à ces mêmes sources ou autres qui pour windows sont déjà ouvertes. Une autre chose avec Library peut être que dll_off ferme sans que ce soit voulu La connection de Library et command devient caduc. Mais je dis peut être des âneries. Je ne suis pas un pro de l' informatique. J' essaie juste d' analyser les comportements. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Synedit Parameters Dim 25 Juin 2017 - 1:55 | |
| Encore une fois, seul Jack peut donner des indications précises sur les liens et précautions à prendre concernant l'utilisation simultanée de DLL_ON/DLL/CALLx/DLL_OFF et LIBRARY/COMMAND/FUNCTION.
Selon ma compréhension des choses, il n'y a pas de lien ni conflit entre les deux systèmes de gestion. Seule restriction: on ne peut pas utiliser la même DLL avec les deux systèmes dans un même programme. Mais utiliser KGF.dll avec DLL_ON et d'autres DLLs avec LIBRARY devrait être possible sans problème.
Maintenant, comme je l'ai déjà dit plusieurs fois, un grand nombre de fonctions de KGF.dll laissent des informations dans la mémoire persistante de la DLL. Ceci cincerne des chaînes de caractères, des objets créés, des tableaux et listes avec des informations internes, des images bitmap internes, etc. Certaines de ces informations ne peuvent pas simplement être supprimées, comme les chaînes de caractères, et donc une fonction de "purge" (actuellement en conception) s'impose.
Mais c'est un travail important que de scruter chacune des près de 1000 fonctions de KGF.dll pour identifier les informations critiques. Donc, si tu peux produire ce "plantage" sur DLL_OFF avec un code restreint, cela m'aiderait à implémenter rapidement une solution au moins partielle à ce problème. Car pour chaque cas de plantage DLL_CLOSE reproductible avec un code Panoramic simple, je pourrai coder la séquence de purge appropriée et enrichir ainsi la fonction de purge qui devra alors être appelée juste avant le DLL_CLOSE. | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Synedit Parameters Dim 25 Juin 2017 - 2:32 | |
| Lorsque vous fermez une application, Windows conserve en mémoire les DLL de cette application afin de pouvoir la rouvrir plus rapidement ultérieurement. L'inconvénient de cette méthode est que votre RAM se remplit inutilement. Pour éviter cela, vous allez créer une valeur spécifique dans le Registre. Les détails sont ici | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 25 Juin 2017 - 2:53 | |
| @ Tous, J' ai mis à jour le zip de BasicEditor sur mon webdev pour les tests des outils modulaires. Avec toutes les infos, améliorations et bidouillages de la journée cela fonctionne... ...enfin chez moi cela fonctionne. (je n' ose plus m' avancer ) Un grand merci à tous ceux qui ont participé à ce sujet et ont apporté leur pierre à l' édifice. La journée a été très instructive. @ Klaus, Dès que j' ai un cas, promis je te le transmet. @ Papydall, Je vais mettre ceci en place. Si cela peut économiser un peu de mémoire... | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Synedit Parameters Dim 25 Juin 2017 - 9:08 | |
| Bonjour à tous, @Yannick, Je ne voudrais pas gâcher ton dimanche, mais ça ne marche pas terrible. J'ai commencé par aller chercher KGF.dll (avec l'icone dans sa signature) je l'ai placé dans le dossier BasicEditor en supposant que c'est là qu'elle doit se trouver. J'ai chargé un code => OK puis j'ai tenté de modifier les paramètres de l'éditeur Ensuite, j'ai lancé individuellement les Plug_in pour qu'il passent tous l'examen du filtre SmartSreen de Windows (pour éviter de perturber le programme) je relance BasicEditor (après avoir vérifié qu'aucun processus ne reste à la traîne). pour chaque Plug_in j'ai le message "impossible to load FILE...." C'est valable pour tous, avec le nom du Plug_in et sa ligne. A+ | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 25 Juin 2017 - 12:21 | |
| @ Jean Claude,
C' est normal. Les modules ne fonctionnent plus avec KGF. Jack a réparé le passage de noms cours/long dans execute et execute_wait donc plus besoin de la dll pour les convertir. Le passage de paramètres fonctionnent sans message d' erreur avec la bidouille de Silverman, du coup tou ce fait dans l' appel il n' y a plus de fichier *.tmp. Du coup si tu ouvres individuellement les modules, ils leur manque les paramètres.
Tu Lances BasicEditor et les modules depuis celui ci.
Le filtre ne change rien, il nous fait perdre un peu de temps, c' est tout. Chez moi c' est avast qui me passe les *.exe à la moulinette dès que je transforme un source en exécutable et j' ai même droit à un access violation non bloquant. Le seul qui peut être dérangé par çà c' est BasicEditor mais une fois passé à la moulinette si il plante je le relance et c' est bon. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 25 Juin 2017 - 12:32 | |
| Autant pour moi, j' ai changer le zip sur le webdav. J' avais zappé de supprimer l' utilisation de KGF dans BasicEditor. | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Synedit Parameters Dim 25 Juin 2017 - 13:39 | |
| On vient d'avancer d'un petit pas,
Maintenant le programme ne réclame plus KGF.dll, mais pour le reste, c'est comme à mon dernier message.
L'erreur en ligne 99 pour SynedirParameters est toujours là. Et pour les Plug_in c'est toujours pareil. (cette fois-ci je les ai lancé directement, en répondant "exécuter quand même" au filtre SmartScreen).
Je ne sais pas si je vais pouvoir tester cet après-midi, j'essaierai. Si tu n'a pas de réponse rapide ne soit pas étonné.
A+ | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 25 Juin 2017 - 13:57 | |
| Je sais que je ne peux pas lutter face à la piscine... Je pense que c' est encore Jean Claude qui coince. Je passe en paramètre le chemin du fichier paramètres et l' espace de Jean Claude doit séparer le paramètres en deux du coup la deuxième partie est prise comme paramètre de la Langue. Seulement le paramètre de la langue est un chiffre. Langue% = val(Param_value$(3)) et comme c' est la deuxième partie l' adresse qui est prise.... faut que je trouve une astuce qui soit valable à tous les coups. Je pense à l' astuce de Silverman. | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Synedit Parameters Dim 25 Juin 2017 - 14:30 | |
| - Citation :
- Je pense que c' est encore Jean Claude qui coince.
Bon, ben si c'est ça je quitte le forum ! et je vais barbotter ... Sérieusement, D'après ce qu'a dit Jack EXECUTE et EXECUTE_WAIT (une fois le bug corrigé, ce qui est normalement le cas) EXECUTE execute le programme que le nom soit court ou pas. Je ne comprends pas. Ce dont on à besoin pour poursuivre, c'est un testeur qui ai un nom normal (sans espace) comme nom d'utilisateur sur son PC. Et y'en a, j'ai les noms..... Bon courage. A+ | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 25 Juin 2017 - 15:28 | |
| @ Jean Claude, Ce n'est pas l' exécution d' un fichier qui coince mais le passage des paramètres. Nom du fichier à executer : "C:\Users\Jean Claude\Desktop\MonExecutable.exe" Par1$ = "1250"Par2$ = "C:\Users\Jean Claude\Desktop\Param.inf"Par3$ = "1"Syntaxe de la commande par Execute_Wait : Execute_Wait "C:\Users\Jean Claude\Desktop\MonExecutable.exe"+"|"+ Par1$+" "+ Par2$+" "+ Par3$le souci est que tu as un espace dans Par2$ et qu' un espace est une séparation de paramètre. donc c' est comme si tu avais : Par1$ = "1250"Par2$ = "C:\Users\Jean"Par3$ = "Claude\Desktop\Param.inf"Par4$ = "1"Or, l' outils attend "1" en Par3$ et qu' il reçoit "Claude\Desktop\Param.inf"Saisis tu le pb ? Bon, sur ce, j' ai modifié le zip (encore une fois ) | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Synedit Parameters Dim 25 Juin 2017 - 17:07 | |
| Une solution possible: utiliser la fonction - Code:
-
res% = DLL_call2("GetShortName",adr(long$),adr(court$)) de KGF.dll et passer le nom court en paramètre. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 25 Juin 2017 - 17:14 | |
| Je sais Klaus mais le but est de faire du tout Panoramic. Et, devoir embarquer KGF qui pèse lourd pour juste une fonction c' est un peu dommage. | |
|
| |
Contenu sponsorisé
| Sujet: Re: Synedit Parameters | |
| |
|
| |
| Synedit Parameters | |
|