Page 1 sur 1
PureBasic 5.10 beta 4
Publié : ven. 18/janv./2013 15:12
par GG
...disponible
>> ICI <<.
- Les types natifs de champs d'une structure de pointeurs ont été interdits
- Support de FTS4 pour SQLite
- Ajout d'un flag optionnel de DatabaseQuery (): # # PB_Database_StaticCursor et PB_Database_DynamicCursor (pour permettre FirstDatabaseRow () pour travailler sur certains pilotes)
Re: PureBasic 5.10 beta 4
Publié : ven. 18/janv./2013 23:13
par graph100
GG a écrit :- Les types natifs de champs d'une structure de pointeurs ont été interdits
Je ne comprend pas ça...
On ne peux plus faire :
ou

Re: PureBasic 5.10 beta 4
Publié : ven. 18/janv./2013 23:21
par comtois
graph100 a écrit :On ne peux plus faire :
Exact, tu ne peux plus le faire. L'arithmétique des pointeurs n'existe pas avec PB, ça n'avait pas de sens d'indiquer un type natif.
ou

Ben si tu peux. 'test' n'est pas un type natif (i, f, d, q, etc) mais une structure.
Re: PureBasic 5.10 beta 4
Publié : ven. 18/janv./2013 23:29
par falsam
Pointeurs et taille mémoire
Comme un pointeur reçoit uniquement une adresse mémoire comme valeur, sa taille en mémoire sera celle qui permettra de représenter une adresse du processeur :
- Sur un processeur 32-bit, les adresses sont représentées sur 32-bit, par conséquent un pointeur prendra 32-bit en mémoire (soit 4 octets comme une variable de type ‘long').
- Sur les processeurs 64-bit, les adresses sont représentées sur 64-bit, ce qui implique qu'un pointeur prendra 64-bit en mémoire (soit 8 octets comme une variable de type ‘quad').
C'est pour cette raison qu'un pointeur est une variable dite de type pointeur car son encombrement en mémoire sera lié à la capacité d'adressage mémoire du processeur.
Il en découle qu'affecter un type à un pointeur (*Pointeur.l, *Pointeur.b…) n'a aucun sens puisque l'encombrement mémoire d'un pointeur est imposé par celui d'une adresse et non par celui d'un type.
J'ai recompilé quelques codes et je vais revoir ma copie. Je corrigerais les principaux codes que j'ai laissé sur ce forum comme Canvas Variation, MindMap, Canoid et autres.
Re: PureBasic 5.10 beta 4
Publié : sam. 19/janv./2013 0:25
par flaith
graph100 a écrit :Je ne comprend pas ça...
On ne peux plus faire :
Tu ne peux plus faire *pointer.l, mais si tu veux conserver un type, tu peux rajouter "Long" à la place :
etc...
Re: PureBasic 5.10 beta 4
Publié : sam. 19/janv./2013 4:56
par graph100
Ok !
Je connaissais le .long et autres, mais c'étais la tournure de phrase que je ne comprenais pas.
Donc, ce que ça veut dire en effectif, c'est qu'un code qui ne fonctionnais pas sous x64 à cause d'une déclaration de pointeur en .l, fonctionnera dorénavant, car (une fois l'erreur correctionnée (

) le pointeur aura automatiquement la taille x64...
Nickel ! (en fait la mise à jour c'est vraiment pour corriger des problèmes !

)
Beau Travail ! J'attends la release avec impatience pour tester, par contre.
Re: PureBasic 5.10 beta 4
Publié : sam. 19/janv./2013 9:41
par comtois
graph100 a écrit :
Donc, ce que ça veut dire en effectif, c'est qu'un code qui ne fonctionnais pas sous x64 à cause d'une déclaration de pointeur en .l, fonctionnera dorénavant, car (une fois l'erreur correctionnée (

) le pointeur aura automatiquement la taille x64...
*pointeur.l sur un système x64 faisait déjà 8 octets; le .l était ignoré, d'où la suppression pour la 5.10, ça ne servait pas, sinon induire en erreur comme tu le fais

Re: PureBasic 5.10 beta 4
Publié : sam. 19/janv./2013 18:14
par G-Rom
on peu toujours pointé sur des structures pour avoir accès au champs , ouf...
Code : Tout sélectionner
Structure AA
a.i
b.i
EndStructure
NewList B.AA()
AddElement(B())
B()\a = 255
B()\b = 512
*ptr.AA = @B()
Debug *ptr\a
Debug *ptr\b
Re: PureBasic 5.10 beta 4
Publié : dim. 20/janv./2013 16:24
par blendman
salut
Cool cette nouvelle version
Chez moi sur win7 (x86), les fichier suivants plantent :
- water.pb plante à la ligne 75 (ima)
- CheckObjectVisibility2.pb : ima ligne 179
- LightAttenuation.pb ligne 104 : ima
(je n'ai pas testé tous les fichiers ^^)
Re: PureBasic 5.10 beta 4
Publié : dim. 20/janv./2013 19:34
par comtois
blendman a écrit :salut
Cool cette nouvelle version
Chez moi sur win7 (x86), les fichier suivants plantent :
- water.pb plante à la ligne 75 (ima)
- CheckObjectVisibility2.pb : ima ligne 179
- LightAttenuation.pb ligne 104 : ima
(je n'ai pas testé tous les fichiers ^^)
Apparemment ça plante toujours sur RenderWorld().
Alors les questions habituelles :
- tu as installé la 5.10 b4 dans un nouveau répertoire ?
- Tu n'as pas un ancien fichier engine3D.dll qui traine quelque part ?
- Tu peux montrer ton fichier log ?