Procédure : Question pour Fred

Sujets variés concernant le développement en PureBasic
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Procédure : Question pour Fred

Message par Le Soldat Inconnu »

Salut,

Une grande question qui me titille le cortex depuis un fameux moment, est-ce qu'une procedure qui n'est pas utilisée dans le code d'un programme est compilé dans l'executable.

Mon but est de faire un fichier "include" comportant toutes les procedures contenu dans ma bibliothèque de code de manière à éviter d'avoir à les insérer à chaque nouveau programme.
D'ou ma question car si les procedures non utilisées sont tout de même compilées, mon executable va avoir une facheuse tendance à l'embontpoint.

Merci d'avance
Et vive la langue française et son vocabulaire immense qui m'a permit de vous relater mon problème avec dextérité et brio.
(comme tout cela est bien dit ;) , je m'épate moi même)
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Salut Régis,

excuse, je répond partiellement avant Fred.

Pourquoi tu n'utilise pas le prog de El_Choni TailBite pour créer une librairie. C'est fonctionnel (sauf un bug mineure qui ne nuit pas au fonctionnement normal) et là seul les fonctions utilisées seront intégrées à l'exe. El_Choni travaille sur la doc pour utiliser TailBite.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

ben, ça fait des librairie PB, c ça ?, à voir ...
peut-être un petit manque de souplesse car je suis toujours en train de tripoter mes sources pour les améliorer. vais attendre la réponse de Fred pour savoir à quoi m'en tenir
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

peut-être un petit manque de souplesse car je suis toujours en train de tripoter mes sources pour les améliorer. vais attendre la réponse de Fred pour savoir à quoi m'en tenir
Pas du tout,

tu recompile avec TB, ca prend 10 seconde et c'est tout, la nouvelle librairie est faite. El_Choni a fait du bon boulot.
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Denis a écrit :Pourquoi tu n'utilise pas le prog de El_Choni TailBite pour créer une librairie.
ça m'a l'air d'être cool , et on le trouve où ce prog ?
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

merci je vais tester ça tout de suite :)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Bon,

quelques explication s'imposent car il n'a pas fait la doc je crois.
voir les 11 pages du forum anglais http://purebasic.myforums.net/viewtopic ... 99&start=0


Vous faites comme d'habitude, avec vos procédures.

Il faut absolument que vos variables globales soient à l'intérieur de la première procédure (ou peut-être une autre mais j'ai pas fait de tests).

Les fonctions que vous appellerez depuis PB doivent commencer par

proceduredll

et celle que vous ne pourrez appeler depuis PB par procedure

Il y a également 2 procédures indispensables lorsque l'on fait une librairie, c'est la procédure qui va initialiser nos fonctions et lorsque l'on quitte, la procédure qui va restaurer les paramètres, libérer la mémoire etc.

Fred a prévu de faire cela et avec TB vou mettez ces suffixes:
"_Init" and "_End"

donc procedure_Init et procedure_End, ces deux procédures n'acceptent pas de paramètres et vous ne pouvez pas les appeller.

Par exemple, si pour votre librairie vous avez besoin d'une liste chainée, vous la créez dans la procedure --> procedure_Init et vous la détruisez dans la procedure --> procedure_End et c'est PB qui appelle ces 2 procedure.

Dans le répertoire de TB, il y a des exemples.

Il y a un bug et qui plante TB si vous mettez un point virgule devant le mot procedure pour la mettre en commentaire. Je l'ai indiqué à El_Choni.

Utilisez TB manager qui est la fenêtre de gestion pour tout faire. Le drag and drop est supporté par TB.
Dernière modification par Anonyme2 le dim. 08/févr./2004 15:23, modifié 1 fois.
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

merci Denis , ces explications étaient plus que nécessaires :)

bon j'y retourne , maintenant que j'en sais plus , je vais peut-être arrivé à faire quelque chose .

ça me semble super tout ça en tout cas.Je vais enfin pouvoir coller toutes mes fonctions 3D dans une lib , marre de les recopier dans tous mes progs :)
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Yahouu ça marche !!!
EXCELLENT :P

C'est génial ce prog , je vais refaire toutes mes procédures .

Juste une question , quelqu'un a déjà fait des tests de vitesse ?
en comparant un code avec un seul source comportant toutes les procédures , et le même code mais qui cette fois-ci appelle les procédures misent en librairies par ce programme ?
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

C'est strictement la même chose, le code assembleur de la librairie est celui généré par Purebasic.
Evidement, il ne faut mettre que des procedures.

Et noublier pas la procedure_Init et procedure_End pour initialiser et restaurer les paramètres si besoin.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Si tu distribue tes lib, il faut faire la doc...
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Bien que les libs que je vais faire ne seront pas dignes d'être distribuées , je serais quand même intéressé pour faire une doc , histoire de m'obliger à m'organiser un peu ( c'est un voeu pieux :) )

Je me souviens avoir vu sur un forum , un lien pour un utilitaire qui permet de faire une aide dans le format chm, quelqu'un pourrait me dire où je peux trouver ça ? ou s'il y a quelque part un outil sympa pour faire une doc ?
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Voici le lien direct sur le site de Microsoft, pour l'utilitaire gratuit (si si) de MS

http://go.microsoft.com/fwlink/?LinkId=14498

et la page ou il y des explications
http://msdn.microsoft.com/library/defau ... nloads.asp

Heis Spiter te donnera le lien pour la traduc en francais qu'il ont fait.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Il y a aussi un utilitaire qui permet de faire des fichiers d'aide au format chm.

Ca s'appelle Web2HTMLHelp Compiler.
C'est un prog qui crée des fichiers d'aide .chm, à partir de fichiers html.

Il faut avoir installé HtmlHelpWorkShop de microsoft, mais ensuite, il suffit de donner la page d'index de ton aide, divers renseignements comme la taille de le fenêtre d'aide qu tu désire, et tu lances, et ton fichier est terminé en quelques secondes.

Très puissant, ce truc. ! :)

Chris :)
Répondre