API - Comment c'est gérer par PB et Windows (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 :

API - Comment c'est gérer par PB et Windows (Fred?)

Message par Le Soldat Inconnu »

Salut,

une grande question :

quand je fais par exemple

Code : Tout sélectionner

SetTimer_(WindowID(), 0, 1000, 0)
dans un programme, il se passe quoi concrètement au niveau de la dll concernés ?

je m'explique :
Le prog ouvre la dll, exécute la fonction et ferme la dll ?
ou le prog ouvre la dll, exécute la fonction et ferme pâs la dll ?
ou etc ...

en clair, qu'est-ce qui se passe ?


je pose cette question car j'ai fais la remarque suivante :
- j'ai un programme qui utilise 4.4 mo de ram
- j'optimise la ram (en gros, je remplis la mémoire avec du vent pour focer win à fire le ménage puis je supprime le vent ;) )
- le programme utilise alors 1.2mo en ram
- j'utilise à nouveau le programme en preannt soin de lancer toutes les fonctions
- le programme remonte alors à 2.2Mo soit 2 fois moins de ram pour le même résultat. alors ou sont passer les 2.2Mo qui ont disparu dans l'opération ? et à quoi servait-il ?
je me demande si ce n'est pas les librairie dont à eu besoin mon prgramme pour créer la fenêtre et ses gadgets car j'ai une grosse opération de chargement que je n'utilise plus par la suite.

Quelqu'un à une idée et peut répondre à mes intérogations ?
Merci
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)]
Avatar de l’utilisateur
ZapMan
Messages : 460
Inscription : ven. 13/févr./2004 23:14
Localisation : France
Contact :

Message par ZapMan »

Je me suis posé le même genre de question (surtout sur les ouvertures et fermetures de Lib) et...hum... je n'ai pas poussé mes tests assez loin pour avoir les réponses. Ce que j'ai remarqué, c'est que j'obtenais de jolis plantage quand j'ouvrais puis refermais des lib déjà utilisée par PureBasic (plantage au moment de la fermeture).
Je suis donc également intéressé par des réponses à ces questions.
Tout obstacle est un point d'appui potentiel.

Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

y'a pas moyen de le savoir avec GetModuleHandle_(nom_de_la_dll$) ?

Dri
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

visiblement, les librairies sont bien fermées mais windows les gardes quand même en mémoire d'après mes observations.
j'ai vu çaen faisant des tests avec des dll que j'ouvrais et fermais
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)]
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Le Soldat Inconnu a écrit :visiblement, les librairies sont bien fermées mais windows les gardes quand même en mémoire d'après mes observations.
j'ai vu çaen faisant des tests avec des dll que j'ouvrais et fermais
Dans ton post pour l'optimiseur de ram j'avais dis qu'il y a une veluer du registre à changer. Moi ça fonctionne très bien :D
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

oui, j'ai l'option dans TweakXP mais si tu connais la clé de registre à modifier , ça m'intéresse. on pourrait faire un petit prog automatique ;)
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)]
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

http://www.informatruc.com/supprimer_dll_xp.php

http://www.laboratoire-microsoft.org/t/1448/

Je n'ai pas testé , et il faudrait peut-être faire des recoupements avec les multiples sites qui parlent de ce sujet :)
Dernière modification par comtois le ven. 27/août/2004 22:14, modifié 1 fois.
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Ahh Google est ton ami :wink: , car on peut faire une recherche où la réponse est même sur la premiere page
sinon tu as
http://www.infos-du-net.com/modules/nse ... ce-15.html
http://membres.lycos.fr/shivash/Windows/DLL.htm
Ouvrez Regedit
Puis HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer
Créez une valeur DWORD du joli nom de AlwaysUnloadDll et donnez lui la valeur 1.


Ainsi, vous n'aurez plus de DLL inutilisées qui polluent votre mémoire...

Note : l'astuce fonctionne également avec AlwaysUnloadDll en clé
Voilà, bonne programation :D
Répondre