OVH Cloud OVH Cloud

lib WIA svchost

11 réponses
Avatar
Thomas
bonjour,

je suis en train de devlopper une application qui prend une photos a partir
d'une webcam avec les composant com et qui l'envoi sur un FTP;
mais je me suis appercu d'un gros bug => toutes les photos prise a partir de
la camera etait sauvegarde dans svchost
en effet svchost grossi => plus je laisse tourner le programme plus il grossi
je ne sais pas comment liberer la memoire
j'ai essayé pour la liberer (c'est appeler apres la capture
-----------------------------------------------------------------------------------------
item.ExecuteCommand(WIA.CommandID.wiaCommandDeleteAllItems);
item = video.Device.ExecuteCommand(WIA.CommandID.wiaCommandDeleteAllItems)
-----------------------------------------------------------------------------------------
pour capture je fais ca
-----------------------------------------------------------------------------------------
item =
video.Device.ExecuteCommand(WIA.CommandID.wiaCommandTakePicture);

imagefile = item.Transfer(WIA.FormatID.wiaFormatBMP) as
WIA.ImageFile;
imagefile.SaveFile("./" + bmpf);
imagefile = null
-----------------------------------------------------------------------------------------
item = WIA.Item
imagefile = WIA.ImageFile
video = AxWIA.AxVideoPreview

merci

j'espere que quelqu'un sauras m'aider ...

1 réponse

1 2
Avatar
Thomas
merci a vous deux , meme si c'est sale pour le moment je fais net stop stisvc
et net start stisvc
apres je fais une reinitialisation du composant de preview

merci ++
bonne journee

"Paul Bacelar" wrote:

Pas besoin de VS
WinDBG + SOS = http://www.microsoft.com/whdc/devtools/debugging/default.mspx
SOS est intégré aux nouvelles versions de WinDBG.
--
Paul Bacelar
MVP VC++

"Thomas" wrote in message
news:
> j'ai la verison express de VS qui ne supporte pas la dll...
> sinon je pense que c'est des WIA.imageFile
>
> merci encore ;)
>
> "Paul Bacelar" wrote:
>
>> Un exemple d'utilisation de SOS avec WinDBG et quelques commandes donnant
>> l'espace mémoire occupé par chaque type d'objet selon la génération.
>>
>> http://msdn.microsoft.com/msdnmag/issues/05/03/Bugslayer/
>>
>> Avec SOS, on peut faire beaucoup plus fin mais il faut chercher un peu
>> dans
>> la doc (ou dans le manque de doc :-( )
>>
>> --
>> Paul Bacelar
>> MVP VC++
>>
>> "Thomas" wrote in message
>> news:
>> > j'ai dumper le processus(svchost) avec ollydbg
>> > j'ai regarder le contenu de la memoire et voici ce que j'ai (ce n'est
>> > qu'une
>> > ligne sur des centaine ...)
>> > Memory map, item 265
>> > AddresswE47000
>> > Size005000 (20480.)
>> > Owner­VAPI32 77DA0000
>> > Section=.reloc
>> > Contains=relocations
>> > Type=Imag 01001002
>> > Access=R
>> > Initial access=RWE
>> >
>> >
>> > "Thomas" wrote:
>> >
>> >> me suis fait avoir ca fais une heure que j'essai dutiliser sos.dll
>> >> avant
>> >> de
>> >> m'apercevoir que je n'ai pas une version de VS qui autorise sont
>> >> utilisation
>> >>
>> >> sinon avec windbg je ne vois pas comment faire pour voir ce qui est
>> >> ajouter
>> >> a svchost ? ya-t-il un moyen de voir les changement effectué ?
>> >>
>> >> je vais continuer a lire la doc mais je ne trouve pas grand chose...
>> >> je pense que c'est les WIA.ImageFile qui sont retenu
>> >>
>> >> voici ce que j'ai pu lire sur un site :
>> >> "Afin de protéger les images d'original qui représentent des mémoires
>> >> numériques, l'objet d'ImageFile ne peut pas directement modifier les
>> >> images.
>> >> Vous pouvez, cependant, employer un objet d'ImageProcess et un ou
>> >> plusieurs
>> >> objets de filtre pour créer une copie modifiée de l'image. La couche
>> >> d'automation de WIA fournit les filtres qui tournent, renversent,
>> >> cultivent,
>> >> mesurent, emboutissent, modifient des propriétés, modifient les
>> >> différents
>> >> Pixel ou changent le format de dossier en format étiqueté de dossier
>> >> d'image
>> >> (tiff), JPEG, les graphiques portatifs de réseau (png), la carte
>> >> binaire
>> >> (BMP), ou les graphiques échangent le format (GIF)."
>> >> source =>
>> >> http://www.emsystems.be/befox/articles.php?lng=fr&pg7
>> >>
>> >> donc voila
>> >>
>> >> merci de d'interresse un peu a mon cas je trim depuis des jour dessus
>> >> deja ...
>> >>
>> >> "Thomas" wrote:
>> >>
>> >> > ok je vais tester aujourd'hui et je reposterais , merci
>> >> >
>> >> > "Paul Bacelar" wrote:
>> >> >
>> >> > > En utilisant WinDBG+SOS.dll, tu devrais récupérer quel type
>> >> > > d'objet
>> >> > > prend
>> >> > > trop de RAM.
>> >> > > --
>> >> > > Paul Bacelar
>> >> > > MVP VC++
>> >> > >
>> >> > > "Thomas" wrote in message
>> >> > > news:
>> >> > > > deja verifié
>> >> > > > aucun des deux n'en ont
>> >> > > > j'ai deja essayé : Marshal.ReleaseComObject
>> >> > > > sans succes
>> >> > > >
>> >> > > > je commence a deprimer ca fait deux jour que je cherche tout la
>> >> > > > journee
>> >> > > > merci en tout cas pour la reponse
>> >> > > >
>> >> > > > "Sébastien FERRAND" wrote:
>> >> > > >
>> >> > > >> Thomas vient de nous annoncer :
>> >> > > >> > bonjour,
>> >> > > >> >
>> >> > > >> > je suis en train de devlopper une application qui prend une
>> >> > > >> > photos a
>> >> > > >> > partir
>> >> > > >> > d'une webcam avec les composant com et qui l'envoi sur un
>> >> > > >> > FTP;
>> >> > > >> > mais je me suis appercu d'un gros bug => toutes les photos
>> >> > > >> > prise
>> >> > > >> > a
>> >> > > >> > partir de
>> >> > > >> > la camera etait sauvegarde dans svchost
>> >> > > >> > en effet svchost grossi => plus je laisse tourner le
>> >> > > >> > programme
>> >> > > >> > plus il
>> >> > > >> > grossi
>> >> > > >> > je ne sais pas comment liberer la memoire
>> >> > > >> > j'ai essayé pour la liberer (c'est appeler apres la capture)
>> >> > > >> > -----------------------------------------------------------------------------------------
>> >> > > >> >
>> >> > > >> > item.ExecuteCommand(WIA.CommandID.wiaCommandDeleteAllItems);
>> >> > > >> > item > >> >> > > >> > video.Device.ExecuteCommand(WIA.CommandID.wiaCommandDeleteAllItems);
>> >> > > >> > -----------------------------------------------------------------------------------------
>> >> > > >> > pour capture je fais ca :
>> >> > > >> > -----------------------------------------------------------------------------------------
>> >> > > >> > item > >> >> > > >> > video.Device.ExecuteCommand(WIA.CommandID.wiaCommandTakePicture);
>> >> > > >> >
>> >> > > >> > imagefile > >> >> > > >> > item.Transfer(WIA.FormatID.wiaFormatBMP) as
>> >> > > >> > WIA.ImageFile;
>> >> > > >> > imagefile.SaveFile("./" + bmpf);
>> >> > > >> > imagefile = null;
>> >> > > >> > -----------------------------------------------------------------------------------------
>> >> > > >> > item = WIA.Item
>> >> > > >> > imagefile = WIA.ImageFile
>> >> > > >> > video = AxWIA.AxVideoPreview
>> >> > > >> >
>> >> > > >> > merci
>> >> > > >> >
>> >> > > >> > j'espere que quelqu'un sauras m'aider ...
>> >> > > >>
>> >> > > >> si ton objet possède une méthode Dispose appelle la pour
>> >> > > >> libérer
>> >> > > >> les
>> >> > > >> ressources.
>> >> > > >>
>> >> > > >> --
>> >> > > >> ---
>> >> > > >> Sébastien FERRAND
>> >> > > >> Microsoft Visual C# MVP
>> >> > > >> blog : http://blogs.developpeur.org/sebmafate
>> >> > > >>
>> >> > > >>
>> >> > > >>
>> >> > >
>> >> > >
>> >> > >
>>
>>
>>





1 2