Page 2 sur 2
Re: PureBasic 4.40 beta 5
Publié : dim. 18/oct./2009 18:20
par beauregard
Re: PureBasic 4.40 beta 5
Publié : lun. 19/oct./2009 18:50
par Le Soldat Inconnu
Elle leur aura donné du boulot, cette 4.40

Re: PureBasic 4.40 beta 5
Publié : mer. 28/oct./2009 14:52
par Ar-S
ça me dérange pas qu'ils prennent leur temps pour la peaufiner/débugger

Re: PureBasic 4.40 beta 5
Publié : mer. 04/nov./2009 9:50
par Kwai chang caine
Mouaaaihhh !!!
Bah KCC y avait peur de la 4.40 et il savait pas pourquoi
Et ben maintenant y sait...

Deja que j'ai un mal fou a faire marcher mes DLL
Je me suis dit....KCC....tout le monde y te dit de prendre la 4.40 ...y faudrait bien que tu t'y mette "Gourgandine"
Bon n'ecoutant que mon courage, je tente pour la seconde fois de creer un projet.
Et 22 000 BOUING plus tard....je croyais que c'etait une non reconnaissance de mes CONSTANTES RES ou mes includefiles...et ben non.
"Quoi que j'apprend-je" ???
Le callfunction il a changé
On peut plus envoyer directement une string a une DLL

Car le nouveau compilateur, il envois plus obligatoirement l'adresse de la string
http://www.purebasic.fr/english/viewtop ... 13#p298213
Super je vais avoir une centaine de fonctions à modifier
Finit d'ecrire ça :
Maintenant faut ecrire ça
Ou ça
Avec le fait que j'ai encore pas tout compris des projets...
Je sens que ça va etre le grand amour la V4.40 et moi

Re: PureBasic 4.40 beta 5
Publié : mer. 04/nov./2009 10:36
par Anonyme2
Salut KCC,
moi aussi ça m'a pris du temps sur mon projet de changer les callfunctionFast et je me suis dit, si ça change encore, j'ai pas fini.
J'ai tout passé en prototype, le compilateur vérifie même le type des paramètres, peut même forcer des valeurs en unicode/ASCII/UTF8 (pseudotypes) alors qu'avec le callfunction, aucun contrôle.
C'est pas très dur, juste une gymnastique.
A+
Re: PureBasic 4.40 beta 5
Publié : mer. 04/nov./2009 10:51
par Le psychopathe
Bon nous allons espérer pour cette semaine ^^
Re: PureBasic 4.40 beta 5
Publié : mer. 04/nov./2009 11:23
par Kwai chang caine
Denis a écrit :Salut KCC,
moi aussi ça m'a pris du temps sur mon projet de changer les callfunctionFast et je me suis dit, si ça change encore, j'ai pas fini.
J'ai tout passé en prototype, le compilateur vérifie même le type des paramètres, peut même forcer des valeurs en unicode/ASCII/UTF8 (pseudotypes) alors qu'avec le callfunction, aucun contrôle.
C'est pas très dur, juste une gymnastique.
A+
Merci mon bon DENIS de ton soutien

On est dans la meme "barquette"
C'est vrai que les voies du seigneur sont impénétrables...et puis meme si elles ne le sont pas....la vie privée de FRED ne nous regarde pas
Mais bon, y'a surement une raison pour que DIEU est changé tout ça.
La V4.40 c'est pas vaseliné, comme le passage v3.94 et 4
Merci de m'avoir parlé des PROTOTYPES, car j'ai bien vu que SROD il en parlait...Mais tu va etre étonné.....j'avais pas compris

Heureusement que tu me le dit maintenant, car je me serait pas vu remodifier mes 100 fonctions une deuxieme fois
Bon les PROTOTYPES, ça fait 3 fois que je me penche dessus, et que j'accroche pas ...j'ai pas du comprendre l'interet.....normal c'est de la haute voltige....et KCC il est deja fier de pouvoir monter au 2e barreau..alors lui demander d'etre sur le plateau en haut....

et sauter ......... j'en rit d'avance
Je vais essayer de suivre les conseils de deux MAITRES..apres tout......... ça va me changer de l'ecole
PROTOTRUC.....me voila

Re: PureBasic 4.40 beta 5
Publié : mer. 04/nov./2009 11:40
par djes
Je ne m'en sers pas souvent, mais franchement, je trouve les prototypes bien plus simples!
Re: PureBasic 4.40 beta 5
Publié : mer. 04/nov./2009 11:43
par Kwai chang caine
Bon vous aviez raison tous les deux ....comment aurais je pu en douter...
Pour me reposer...je me suis assis sous un arbre et dieu lui meme m'a causé
Il m'a dit :
Caaaaaa Céééééé Céééééé .....Aaaaaaaaabaaaandonne cooooommmpletemeeeent les coooooolllfonctions
J'suis sur que personne y me crois encore
Et ça.....c'est du fromage blanc ????
http://www.purebasic.fr/english/viewtop ... 29#p304929
Eeeeet ooouuiiiii tssss tssss tssss !!!!
Ne vous en déplaise.....KCC y cause avec les dieux
Car ........heureux les simples d'esprit.....

Re: PureBasic 4.40 beta 5
Publié : mer. 04/nov./2009 11:46
par Kwai chang caine
djes a écrit :Je ne m'en sers pas souvent, mais franchement, je trouve les prototypes bien plus simples!
DJES je t'adore tu le sais

....mais comment vous faites pour trouver plus simple quelque chose qu'il faut rajouter des lignes en plus pour que ça fasse la meme chose
C'est comme la nouvelle lessive, le nouvel "OUMOULE" avec les noeuds...C'est pareil qu'avant, mais t'as toute la semaine apres pour defaire les noeuds (Michel)
Qu'est ce qui peu etre plus simple que ça :
D'ailleur si KCC il a compris tout de suite..c'est quand meme un indice non ???

Re: PureBasic 4.40 beta 5
Publié : mer. 04/nov./2009 13:47
par Anonyme2
Je te montre comment j'ai fait dans mon code, voila la procedure, il y a en remarque la ligne suivante qui sera changé par un prototype :
Code : Tout sélectionner
; If CallFunctionFast(*lpEnumFunc, hModule, i, lParam) = #Stop_Enumeration
Cette ligne est remplacée par la ligne :
et Callback est une variable locale déclarée comme ceci
Code : Tout sélectionner
Protected Callback.PIM_EnumResourceNames_ICO_File = *lpEnumFunc
et *lpEnumFunc est l'adresse de ma fonction callback (tu sais celle dont tu raffoles ...)
et le prototype à déclarer avant tout ça est défini comme ceci
Code : Tout sélectionner
Prototype.i PIM_EnumResourceNames_ICO_File(*hModule, i, lParam)
les 3 paramètres étant les 3 derniers paramètres de
If CallFunctionFast(*lpEnumFunc, hModule, i, lParam)
Code : Tout sélectionner
ProcedureDLL.i PIM_EnumResourceNames_ICO_File(*hModule.PIM_LoadFileToMemory_EX, *lpEnumFunc, lParam)
;///////////////////////////////////////////////////////////////////////////////////////////////////
;//
;// FONCTION: PIM_EnumResourceNames_ICO_File()
;//
;// BUT: Permet d'énumérer les icônes d'un fichier ico
;// Le paramètre *lpEnumFunc est l'adresse d'une procedure qui sera appelée pour faire les
;// opérations nécessaires sur les valeurs énumérées.
;//
;// PARAMS: *hModule - pointeur sur la variable PIM_LoadFileToMemory_EX utilisée pour mémoriser les données
;// du fichier ICO
;// *lpEnumFunc - adresse d'une procedure qui sera appelée pour faire les opérations
;// nécessaires sur les valeurs énumérées.
;// lParam - Valeur passée par la fonction appelante et correspond ici à l'adresse de
;// d'une variable de type InfosResourceEx qui stocke les infos sur les icônes et groupes
;//
;// RETOURNE: #Continue_Enumeration (=#True) si l'énumération continue (tant qu'il y a des icônes)
;// #Stop_Enumeration (=#False) si l'énumération doit stopper en cas d'erreur
;//
;//
;// La callback est de la forme :
;//
;// Procedure EnumResNameProc(hModule, ItemPosition, lParam)
;// xxx
;// EndProcedure
;//
;// PARAMS: *hModule - pointeur sur la variable PIM_LoadFileToMemory_EX utilisée pour mémoriser les données
;// du fichier ICO
;// ItemPosition - position de l'icône dans le fichier car ies icônes n'ont pas d'identifiants
;// lParam - Valeur passée par la fonction appelante et correspond ici à l'adresse de
;// d'une variable de type InfosResourceEx qui stocke les infos sur les icônes et groupes
;//
;//
;///////////////////////////////////////////////////////////////////////////////////////////////////
;// mémorise l'adresse du contenu de la ressource, à partir du début du fichier modifié dans chaque boucle
Protected *Memory_Add_temp.IconDir_0
;// pointeur sur les éléments mémorisants les données d'énumération
Protected *ResourceInfos.InfosResourceEx
;// compteur de boucle
Protected i
;// variable prototype de la callback d'énumeration
Protected Callback.PIM_EnumResourceNames_ICO_File = *lpEnumFunc
;// si un des pointeurs est nul, on stoppe l'énumération
If (*hModule = #Null) Or (*hModule\Pt_Memory_File_Address = #Null) Or (*lpEnumFunc = #Null) Or (lParam = #Null)
PIM_SetError_Code(#Error_Code_Pointeur_Null)
ProcedureReturn #Stop_Enumeration
EndIf
;// mémorise la valeur du pointeur, ce pointeur va évoluer
*Memory_Add_temp = *hModule\Pt_Memory_File_Address
;// si pas d'icônes à traiter, on stoppe l'énumération
If *hModule\Icon_Number <= 0
PIM_SetError_Code(#Error_Code_ICON_Number)
ProcedureReturn #Stop_Enumeration
EndIf
;// ici on va appeler la procedure pointée par *lpEnumFunc pour chaque icône
;// on teste que les structures se situent bien dans la zone mémoire, y compris le word qui suit
If (@*Memory_Add_temp\idEntries[*hModule\Icon_Number] + SizeOf(IconDirEntry) -1 > *hModule\LastMemoryAdress)
PIM_SetError_Code(#Error_Code_Reading_Writing_Over_LastMemoryFileAdress)
ProcedureReturn #Stop_Enumeration
EndIf
For i = 1 To *hModule\Icon_Number
;// on appele la callback en passant la position (i) de l'icône
;// le premier icône a l'indice 1
If Callback(*hModule, i, lParam) = #Stop_Enumeration
; If CallFunctionFast(*lpEnumFunc, hModule, i, lParam) = #Stop_Enumeration
;// l'utilisateur a arrêté l'énumération
;// si il y a un code d'erreur, on retourne #Return_Error, sinon on retourne #Return_No_Error
If PIM_GetError_Code()
ProcedureReturn #Return_Error
Else
ProcedureReturn #Return_No_Error
EndIf
EndIf
Next
;// retourne #Continue_Enumeration pour continuer l'énumération
ProcedureReturn #Continue_Enumeration
EndProcedure
Re: PureBasic 4.40 beta 5
Publié : mer. 04/nov./2009 14:22
par Kwai chang caine
Merci DENIS
Et ben.....KCC il est pas sorti de l'auberge
