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 ...

10 réponses

1 2
Avatar
Sébastien FERRAND
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
Avatar
Thomas
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





Avatar
Paul Bacelar
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







Avatar
Thomas
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
>>
>>
>>





Avatar
Thomas
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
> >>
> >>
> >>
>
>
>


Avatar
Thomas
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
> > >>
> > >>
> > >>
> >
> >
> >


Avatar
Paul Bacelar
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
> > >>
> > >>
> > >>
> >
> >
> >




Avatar
Thomas
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
>> > > >>
>> > > >>
>> > > >>
>> > >
>> > >
>> > >





Avatar
Simon Mourier [SoftFluent]
On peut connaître quel service Windows correspond à quel processus en
lançant

TASKLIST /SVC

exemple chez moi:
Nom de l'image PID Services
========================= ======
============================================ System Idle Process 0 N/D
System 4 N/D
smss.exe 604 N/D
csrss.exe 664 N/D
winlogon.exe 688 N/D
services.exe 736 Eventlog, PlugPlay
lsass.exe 748 NtLmSsp, PolicyAgent, ProtectedStorage,
SamSs
svchost.exe 916 DcomLaunch, TermService
svchost.exe 1000 RpcSs
svchost.exe 1036 AudioSrv, Browser, CryptSvc, Dhcp,
dmserver,
ERSvc, EventSystem, lanmanserver,
lanmanworkstation, Netman, Nla, RasMan,
Schedule, seclogon, SENS, SharedAccess,
ShellHWDetection, srservice, TapiSrv,
Themes, w32time, winmgmt, wscsvc, wuauserv,
WZCSVC
svchost.exe 1080 Dnscache
svchost.exe 1216 LmHosts, RemoteRegistry, SSDPSRV, WebClient
svchost.exe 1176 stisvc

De là je peux en déduire par exemple à quel service Windows correspond un
processus svchost.exe donné. En l'occurrence stisvc.exe correspond à
"Acquisition d'image Windows (WIA)". (cf référence de tous les services ici:
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/management/svrxpser_7.mspx)

La mémoire utilisée par ce service est non managée car MSCOREE.DLL n'est pas
chargée dans ce processus. Ce qui veut dire qu'il ne sert pas à grand chose
d'utiliser un débuggeur (et encore moins SOS.DLL ne sert à rien dans ce
processus puisqu'il est non managé) à moins de connaître précisément le
service en question (seul Microsoft est à priori dans ce cas).

Le problème est à priori le même que lorsqu'on essaye de faire de l'Excel
avec .NET, c'est un problème de serveur COM+ (Excel.exe ou ici svchost.exe)
qui alloue de la mémoire pour servir un client (ici votre programme .NET)
qui n'est pas dans le même processus. La mémoire allouée dans svchost.exe
est liée aux références COM+ créees implicitement par .NET dans votre
processus lorsque vous instanciez des objets WIA. Le garbage collector se
déclenche dans votre processus à un moment non prévisible, ce qui fait qu'on
a l'impression de perdre de la mémoire mais ce n'est normalement pas le cas
(sauf bug de WIA ce qui est toujours possible).

A priori, utiliser Marshal.ReleaseComObject peut modifier le comportement
par défaut en forçant la libération des objets COM+ alloués implicitement,
mais il faut bien penser à tout (un exemple avec excel ici:
http://geekswithblogs.net/jolson/archive/2004/02/03/1716.aspx).
Sinon, il peut aussi être envisageable de forcer le redémarrage du service,
en fonction de votre contexte. (par ligne de commande "net stop stisvc, net
start stisvc" ou par programme)

Simon.
www.softfluent.com


"Thomas" a écrit dans le message de 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
>> > > >>
>> > > >>
>> > > >>
>> > >
>> > >
>> > >







Avatar
Paul Bacelar
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