#PB_Any

Sujets variés concernant le développement en PureBasic
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

#PB_Any

Message par Anonyme2 »

Les identifiants retournés par #PB_Any sont-ils toujours positifs ?

Mis à part Fred qui pourrait répondre. J'ai déjà utilisé une API pour avoir ce type d'identifiant mais il y a bien longtemps et je ne retrouve plus son nom. Il me semblait que la valeur était un word mais maintenant ...
ATHOW
Messages : 226
Inscription : mer. 29/déc./2004 16:54

Re: #PB_Any

Message par ATHOW »

Ce test ne vaut rien, je sais... mais une petite boucle pour simuler une loi des grands nombres peut donner une idée de la réponse :

Code : Tout sélectionner

For i.l = 0 To 10000
  Debug CreateImage(#PB_Any, 1, 1)
Next
(Oui, je libére pas la mémoire, c'est pas bien, mais c'est juste pour le test, hein)

Moi, j'ai que des valeurs positives !
Je m'en sers beaucoup de #PBAny, moi, mais je me suis jamais posé cette question :)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

j'utilise des fonction Pb avec des #PB_Any et si la fonction échoue je retourne -1 sinon l'id statique de #PB_Any.
Je n'avais pas encore entrevu ce problème (je comprend vite mais faut expliquer longtemps...).
Il peut se solutionner par le fait de retourner 0 mais pour mon codage actuel ça m'oblige à revoir de nombreuses lignes de codes alors que je n'ai pas envie :D

ATHOW, Pour ton code d'essai, PB libère la mémoire pour ses fonctions, donc pas de problème .

merçi
ATHOW
Messages : 226
Inscription : mer. 29/déc./2004 16:54

Message par ATHOW »

Une solution alors : vu que #PB_Any ne retourne jamais deux fois le même résultat dans une même exécution, il suffit de déclarer une image (ou ce que tu veux) en début de programme avec #PB_Any, et de prendre son ID comme étant l'ID "d'erreur". Attention à ne pas libérer cette image (ou ce que tu veux) car son ID pourra alors être réassigné.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Oui, c'est une solution qui se défend, je vais me pencher dessus :D
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

J'ai posé la question à fred, et voici ce qu'il m'a répondu :

Théoriquement, il ne devrait jamais avoir de valeur négative.
Maintenant, c'est une adresse mémoire, donc il vaut mieux gérer ça en tant que non signé.

A+
Denis
Répondre