Remplacer une DLL alors qu'elle est utilisé par Windows ...??? - Win NT/2K/XP - Windows & Software
Marsh Posté le 07-01-2003 à 17:01:23
cette dll poste prob avec mon programme ( sous 2000 )
le programme fonctionne a merveille sous 98
je ve donc remplacer cette dll avec cette du 98
je vais essayer sous dos
Marsh Posté le 07-01-2003 à 17:09:22
tu démarres en mode console
ainsi tu auras accès à ton disque dur, même en ntfs
tu remplaces la dll
pis ça roule
Marsh Posté le 07-01-2003 à 17:26:22
trop tard le mal est fait le PC ne redemarre plus
meme plus en dos... pret pour un reinstall de tout
fais chier !!!!
Marsh Posté le 07-01-2003 à 17:28:43
partition NTFS ou FAT?
si c'est fat y a peut-être moyen!!
et tu ne peux pas démmarer win98SE?
Marsh Posté le 07-01-2003 à 17:31:27
je suis sous Win 2000 et en NTFS
( pas de windows 98 a l'horizon)
tu crois que reparer marchera ?
Marsh Posté le 07-01-2003 à 17:41:16
mais la prochaine fois... réfléchis... w98 et 2000 ne sont pas du tout du même monde!!!!
XP-2000 peut-être mais 95-98 et Millenium niett!!!
Marsh Posté le 07-01-2003 à 17:43:30
ok j'essai ca demain matin
mais c'etait ma derniere chance pour resoudre le probleme c'est pour ca que j'ai pas hesité.
Je vous tiens au courrant demain dans la matinée
et merci a tous ceux qui m'ont conseillé
Marsh Posté le 07-01-2003 à 18:00:53
bitonio6 a écrit : non mais tu as lu ce qu'il veut faire? |
mouarff,
non, j'avais lu que le 1er message
Marsh Posté le 07-01-2003 à 21:53:41
Je suis un peu tard sur le coup mais il existe un soft de MS qui s'appelle inuse.exe et qui s'utilise en ligne de commande. Il suffir de taper inuse /? pour avoir les switchs
http://download.microsoft.com/down [...] /inuse.exe
pour NT/2K/XP
http://support.microsoft.com/?kbid=228930
Bellamy a aussi une solution pour NT/2K (je ne sais pas si ça marche pour XP)
http://www.bellamyjc.net/fr/systeme.html#replace
Marsh Posté le 08-01-2003 à 09:28:59
La reparation rapide de Windows n'a rien donné
Par contre avec la reparation en mode console j'ai pu remplacer le fichier et bingo
mon win2K redemarre ( alors merci a tous)
Je vais qd meme vous expliquer pourkoir j'ai tenter cela ( bien que c'est idiot je l'avoue)
j'ai un programme ( en C++ buider) qui permet l'aquisition de la vitesse d'un véhicule.
Cette vitesse est représenter dynamiquement sur un graphe.
Dans borland j'utilise la fonction BitBlt pour faire cela.
Sous Win98 tout marche a merveille.
Sous Win2K la vistesse defile mais aléatoirement elle se fige. ( a peu pres au bout de 100m - 200m)
J'ai alors creusé le probleme. j'ai fait affiché a mon application l'erreur windows générée.
c'est l'erreur 170 ... d'apres l'aide cette erreur signifie " The requested ressource is in use"
code erreur " ERROR_BUSY".
En fait la fonction BitBlt copie cette vitesse stokée dans un tableau 1 vers un tableau 2.
Le tableau 1 represente toute la distance parcourue. Et le tableau 2 represente la distance
afficher a l'ecran de l'utilisateur ( environ 1.2km). si la "mission" est supérieure a 1.2km
un ascenseur apparait et permet de faire defilé tout ca.
Mais mon erreur apparait bien avant 1.2km donc tableau 1 = tableau 2 ( en gros puisqu'en fait ce sont
des representation graphique) Alors j'aimerais savoir pourquoi ALEATOIREMENT l'ecran ( tableau 2) de bloque
L'enregistrement de tableau 1 continue bien comme il faut ds une base de donnée.
J'ai donc trouvé en cherchant que ca plante "plus rapidement" si je bouge ma souris ou si j'utilise
un racoucis clavier. En va meme dire que ca plante PLUS si on laisse defilé la vitesse sans bouger la souris.
Dès qu'on la bouge...ca plante. J'ai pensé a un buffer que se remplit et qui stock tout les evénements
( Windows message), mais quel buffer ?
Sous windows 98 ce bug est inexistant. La fonction BitBlt fait appelle a la dll gdi32 c'est pourkoi
je voulais la changer.
voila j'espere avoir été assez clair. Si quelqu'un aurait une piste ce serait simpa car je suis presque au bord
de la deprime.
merci
navarro
Marsh Posté le 08-01-2003 à 15:28:43
tu as parcouru un peu les astuces du net... optimisation et autre?!
c'est peut-être pas super bien programmé pour la plateforme 2000
sinon tu peux aussi essayé les modules qui te permettent d'émuler le w98!!! dans w2k
Marsh Posté le 08-01-2003 à 17:28:48
oui je fais que ca parcourir le net et les newsgroups.
mais bon ...
Ta remarque est pe etre la bosse : c'est pe etre pas bien programmer pour Win2K ...Mais c'est justement ca que je cherche.
Si je bidouille avec les parametres de BitBlt j'obtient d'autres aspect de figeable de mon tableau 2. Donc je me dis que c'est que la que ca coince. Mais je n'y arrive pas.
Et emuler Win98 ds Win2K ne sera pas accepté, c'est un produit qui est vendu au client.
Merci tout de meme pour cette proposition.
En fait il faudrai que je sache quelle sont les fonctions qui provoquent l'erreur 170 a sovoir ERROR_BUSY
Merci
Marsh Posté le 10-01-2003 à 13:04:27
ben en fait c'est bien Windows qui merde mais c'est parce que le programme le fait planter. ( enfin c'est ce que je pense)
puisque que si je trifouille avec les parametre BitBlt je vois des changements dans dans l'affichage ..
je deviens fou
Marsh Posté le 14-01-2003 à 13:30:47
lol dites moi le fichier gdi32.lib je peux le changer sans crainte ?
Marsh Posté le 15-01-2003 à 00:46:45
alors là... j'en sais rien... fais une recherche Google.. ou sur microsoft!!!
Marsh Posté le 15-01-2003 à 01:27:40
Je pense que maintenant ton cas est plus pour le forum Programmation !
En attendant, je vais faire une hypothèse sur ton programme :
- Tu copie une zone de l'écran vers une autre zone de l'écran ?
Si c'est le cas, je ne pense pas que ce soit autorisé. Il est possible que les fonctions GDI de Windows 2000 soient différentes de celles de Windows 98 et que cela fasse planter parfois.
Pour résoudre ce problème, essaie de passer par un DeviceContext (Canvas chez Borland ?) stocké en mémoire (en faisant 2 BitBlts).
Si ce n'est pas ça le problème, il faudrait que tu donnes plus d'explications (sur un nouveau message dans le forum Programmation) :
- L'erreur 170 se produit juste après le BitBlt ou après l'appel d'une autre fonction ?
- Qu'est-ce qui te fait penser que c'est le BitBlt (ou l'affichage en général) qui fait planter ton application.
- L'erreur 170 indique qu'une ressource est utilisée. Si ça plante pendant un BitBlt, je suppose que la ressource dont il est question est un des DeviceContexts (Canvas) utilisé par la fonction. Peux-tu indiquer les parties de code où tu te sert de ces DeviceContext ?
- Ton code possède t'il plusieurs Threads ? Parce que je ne suis vraiment pas sûr que les fonctions graphiques soient "thread-safe".
Marsh Posté le 15-01-2003 à 01:30:32
démarrer/exécuter/
taper sfc
enter
?
Marsh Posté le 15-01-2003 à 23:20:34
Merci gatorette
Je t'ai envoyé un message perso
Je vais preciser ma demande
Marsh Posté le 07-01-2003 à 16:44:42
J'aimerais savoir comment remplacer une dll ( qui est dans c:\WINNT\System32)
alors qu'elle est utilisée par Windows. ( il s'agit de gdi32.dll )
Le mode sans echec ne permet pas non plus ce remplacement car elle est aussi charger
lors de ce mode.
y a til un moyen ?
Merci d'avance
navarro