| D'après vous, où est le problème ? | |
|
|
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: D'après vous, où est le problème ? Mer 19 Sep 2012 - 15:57 | |
| - Code:
-
dim kgf$,File$
kgf$=dir_current$+"\KGF.dll" File$=dir_current$+"\Mon_Image.jpg"
Dimensions(File$) end
Sub Dimensions(F$) Dim_Local res%,H%,L%
dll_on kgf$ res%=dll_call3("AnalyzeImageFile",adr(F$),adr(L%),adr(H%)) if res%=1 message "Extension de fichier invalide !" end_if dll_off
message F$+" - "+str$(L%)+" - "+str$(H%) End_Sub | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: D'après vous, où est le problème ? Mer 19 Sep 2012 - 16:18 | |
| Ligne 13 il y a une ( en ouverture et deux)) en fermeture.
Autant pour moi c'est bon...
A+
| |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 19 Sep 2012 - 16:20 | |
| çà c'est normal Jean Claude...une pour ouvrir,une pour fermer et celle en plus est celle de fermeture de adr(H%)
le truc c'est que la dim_local n'a pas d' adr(dim_local) | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: D'après vous, où est le problème ? Mer 19 Sep 2012 - 17:00 | |
| Il y a bien un BUG ! Regarde ceci: - Code:
-
dll_on "KGF.dll" dim vers$, vers% vers$ = string$(25," ") vers% = DLL_call1("KGFdllVersion", adr(vers$) ) message "1: "+str$(vers%)+" correspond à ["+vers$+"]" test() end
sub test() dim_local vers1$, vers% vers1$ = string$(25," ") vers% = DLL_call1("KGFdllVersion", adr(vers1$) ) message "2: "+str$(vers%)+" correspond à ["+vers1$+"]" end_sub
L'appel dans le programme principal se passe bien, mais l'appel dans la procédure a un problème avec ADR(vers$). Je ne sais pas où ça pointe, mais pas dans la variable locale vers$ ! Conclusion: ADR() ne marche pas avec une variable locale ! | |
|
| |
Invité Invité
| Sujet: Re: D'après vous, où est le problème ? Mer 19 Sep 2012 - 17:06 | |
| ça fait un problème de plus. Avec Pagiciel, dans un appel à un sub, il ne sais pas qu'il est dedans: (152) END_SUB sans appel. Line ... Voir sur Pagiciel, si ça vous dis. |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 19 Sep 2012 - 17:30 | |
| Cela nuit fortement à la portabilité des procédures ... | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: D'après vous, où est le problème ? Mer 19 Sep 2012 - 18:00 | |
| C'est normal, on est en phase de test. Si tout marchait dès le début des tests, on ne ferait pas de tests ... | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: D'après vous, où est le problème ? Mer 19 Sep 2012 - 18:04 | |
| Regardez ceci - Code:
-
' dim a,a,a : ' <--- ERREUR dim b, : ' pas d'erreur malgré la virgule en trop ! ' dim c,, : pour DEUX virgules il y a VIOLATION ! b = 1 message " b = " +str$(b) test() end sub test() dim_local a,a,a,a,a,a,a,a,a,a, : ' ici PAS D'ERREUR !!!!! a = 10 message "a = " + str$(a) end_sub
| |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 19 Sep 2012 - 19:11 | |
| | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: D'après vous, où est le problème ? Mer 19 Sep 2012 - 19:35 | |
| Admirez ce beau triangle - Code:
-
test() message "!!! Tout est bien qui finit bien !!!" end sub test() dim_local a dim_local a,a dim_local a,a,a dim_local a,a,a,a dim_local a,a,a,a,a dim_local a,a,a,a,a,a dim_local a,a,a,a,a,a,a dim_local a,a,a,a,a,a,a,a dim_local a,a,a,a,a,a,a,a,a dim_local a,a,a,a,a,a,a,a,a,a a = 10 message "a = " +str$(a) end_sub
Qui dit mieux ? | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: D'après vous, où est le problème ? Mer 19 Sep 2012 - 19:36 | |
| Je reprends mon exemple précédent: - Code:
-
dll_on "KGF.dll" dim vers$, vers% vers$ = string$(25," ") vers% = DLL_call1("KGFdllVersion", adr(vers$) ) message "1: "+str$(vers%)+" correspond à ["+vers$+"]" test() end
sub test() dim_local vers1$, vers% vers1$ = string$(25," ") vers% = DLL_call1("KGFdllVersion", adr(vers1$) ) message "2: "+str$(vers%)+" correspond à ["+vers1$+"]" vers$ = string$(25," ") vers% = DLL_call1("KGFdllVersion", adr(vers$) ) message "3: "+str$(vers%)+" correspond à ["+vers$+"]" end_sub
On voit clairement que ADR() fonctionne, même à l'intérieur d'une procédure, pour des variables globales, mais PAS pour des variables locales déclarées avec DIM_LOCAL ! Jack, tu as quelque chose à corriger, là ! | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re: D'après vous, où est le problème ? Mer 19 Sep 2012 - 20:16 | |
| J'ai donc mis la main sur mon premier VRAI bug ... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: D'après vous, où est le problème ? Mer 19 Sep 2012 - 21:29 | |
| Oui, c'est certain. Voici un autre essai, dérivé des précédents: - Code:
-
dll_on "KGF.dll" dim vers$, vers% vers$ = string$(25," ") vers% = DLL_call1("KGFdllVersion", adr(vers$) ) message "1: "+str$(vers%)+" correspond à ["+vers$+"]" test() end
sub test() dim_local vers1$, vers% vers1$ = string$(25," ") vers$ = string$(25," ") vers% = DLL_call1("KGFdllVersion", adr(vers1$) ) message "2: "+str$(vers%)+" correspond à ["+vers1$+"]" message "adr(vers$)="+str$(adr(vers$))+" adr(vers1$)="+str$(adr(vers1$)) ' message "adr(vers$)="+str$(adr(vers$))+" adr(vers1$)="+str$(adr(vers$)) message "vers$=["+vers$+"] vers1$=["+vers1$+"]" end_sub
On y voit dir l'adresse de vers$ est IDENTIQUE à) l'adresse de vers1$ ce qui est une aberration. Cependant, cela ne semble pas être pris compte car quelque soit la variable, vers$ ou vers1$, le contenu n'est pas altéré, alors que ça marche parfaitement dans le programme principal, ligne 5. Donc 2 anomalies: 1. la valeur de adr(vers$) est identique à adr(vers1$) 2. en ligne 14, la valeur de l'adresse passée n'est pas prise en compte Par compte, si je désactive la ligne 14 et j'active la ligne 15, l'adresse (pourtant identique en valeur à celle passée et ligne 14) est bien prise en compte. En fait, on ne semble pas pouvoir écrire dans l'endroit en mémoire où se trouvent les variables locales. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 19 Sep 2012 - 22:28 | |
| Je pense que Jack va avoir un sacré boulot avec ces variables locales et que cela doit être corrigé avant de passer aux fonctions sinon les ennuis risquent d' être exponentiel... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: D'après vous, où est le problème ? Mer 19 Sep 2012 - 22:35 | |
| Je crois que c'est un peu pour ça que Jack a donné accès à cette version. Pour avoir rapidement un retour sur des choses qui ne vont pas - le rodage sera beaucoup plus rapide. | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: D'après vous, où est le problème ? Mer 19 Sep 2012 - 22:55 | |
| C’est un peu ce que j’ai suggéré dans un autre endroit : faire des essais et des tests aussi saugrenus et inattendus soient-ils pour dénicher ce qui ne va pas. C’est ainsi que Jack saura à quoi donner la priorité | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 19 Sep 2012 - 23:01 | |
| | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: D'après vous, où est le problème ? Mer 19 Sep 2012 - 23:22 | |
| | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: D'après vous, où est le problème ? Jeu 20 Sep 2012 - 9:47 | |
| Ce problème est insoluble car même s'ils se montrent, de toute façon on ne les verra pas A+ | |
|
| |
Contenu sponsorisé
| Sujet: Re: D'après vous, où est le problème ? | |
| |
|
| |
| D'après vous, où est le problème ? | |
|