Utiliser capCreateCaptureWindow en Windows Form [Résolu]

Messages postés
33
Date d'inscription
jeudi 30 septembre 2010
Dernière intervention
24 novembre 2011
- - Dernière réponse : raikko21
Messages postés
33
Date d'inscription
jeudi 30 septembre 2010
Dernière intervention
24 novembre 2011
- 13 mai 2011 à 23:41
Salut tlm!!!
J'ai un petit problème pour passer d'une Win Api en WindowsForm, j'ai fait une application (je me suis bcp aider des sources du site) qui gère une webcam que j'ai envie d'afficher dans un pictureBox et la... je bloque un peu au niveau du handle

HWND hWnd_WebCam;
HWND hWnd;
hWnd_WebCam = capCreateCaptureWindow((LPCWSTR)"Ma fenetre", WS_CHILD | WS_VISIBLE, 0, 0, 320, 240, hWnd, 1);

et la j'ai un problème concernant le hWnd (Handle de la fenetre), je doit le remplacer par le handle du pictureBox non??
J'ai essaye de remplacer le hWnd par: (HWND)this->pictureBox1->Handle.ToInt(32)
et la fatal error LNK1120: 2 unresolved externals

Voila, merci d'avance pour votre aide
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
788
Date d'inscription
mardi 8 juillet 2003
Dernière intervention
8 mars 2017
3
Merci
tu as trouvé ce lien :
http://www.developpez.net/forums/d294144/c-cpp/outils-c-cpp/visual-cpp/cpp-cli/vfw-vc-express/
il contient ta solution.


louis

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de cs_louis14
Messages postés
788
Date d'inscription
mardi 8 juillet 2003
Dernière intervention
8 mars 2017
0
Merci
Bonjour,
en premier lieu , il faut inclure la librairie vfw dans ton projet, se ce n'est fait.
Ensuite, je ne sais pas pourquoi tu fais toint(32), ce ne serait pas plutôt toInt32(). ensuite il faut voir à quoi correspond Handle , n'est-ce pas le handle que tu dois utiliser pour la fonction de vfw. tu as essayé picturebox->Handle tout simplement ou avec le cast devant?


louis
Commenter la réponse de cs_louis14
Messages postés
33
Date d'inscription
jeudi 30 septembre 2010
Dernière intervention
24 novembre 2011
0
Merci
salut louis!
Je te remercie d'avoir pris le temps de répondre, ben c'est normal j'ai inclus <windows.h> et <vfw.h> et pour le ToInt(32) c'est juste une erreur de frappe.. Oui j'avais essaye sans le ToInt32() et rien. Mon problème c'est quand je passe en WindowsForm en WinApi ca marche normalement.
je vais voir le lien et encore merci
Commenter la réponse de raikko21
Messages postés
33
Date d'inscription
jeudi 30 septembre 2010
Dernière intervention
24 novembre 2011
0
Merci
Re louis!
Merci beaucoup, le problème c'était qu'il fallait ajouter :
Pour capCreateCaptureWindow : #pragma comment (lib, "Vfw32.lib")
Et pour capPreviewScale, capPreviewRate, capPreview: #pragma comment (lib, "User32.lib")
J'aurais une autre question stp:
hWnd_WebCam = capCreateCaptureWindow(NULL,WS_CHILD|WS_VISIBLE,0,0,320,240,(HWND)panel1->Handle.ToPointer(),0);
if (!capDriverConnect(hWnd_WC,0)){
System::Windows::Forms::MessageBox::Show("La webcam n'est pas connectée.");
exit(0);
}
capPreviewScale(hWnd_WebCam, true);
capPreviewRate(hWnd_WebCam, 66);
capPreview(hWnd_WebCam, true);
Ma question c'est pourquoi quand j'enleve le "if" (la condition) la webcam ne fonctionne pas?
Et merci d'avance!
Commenter la réponse de raikko21
Messages postés
788
Date d'inscription
mardi 8 juillet 2003
Dernière intervention
8 mars 2017
0
Merci
Bonjour,
pour les librairies, je te l'avais signalé : soit on les rajoute aux propriétés du projet et mieux comme tu l'as fait par le pragma.
Pour le "if" je ne comprends pas trop ta question:
- enlever "if" de la ligne, dasn ce cas on sort pas exit(0)
- enlever toute la ligne : cette fonction est nécessaire pour connecter la fenêtre au driver de ta caméra ( du moins la première caméra). Je te conseille de lire l'aide des fonctions de vfm.
Ou de chercher des projets qui l'utilise sur ce site et qui expliquent l'usage de chaque fonction.


louis
Commenter la réponse de cs_louis14
Messages postés
33
Date d'inscription
jeudi 30 septembre 2010
Dernière intervention
24 novembre 2011
0
Merci
Salut tlm!!!
Quand je dis enlever le "if" je veux dire enlever tout ca:

if (!capDriverConnect(hWnd_WC,0)){
System::Windows::Forms::MessageBox::Show("La webcam n'est pas connectée.");
exit(0);
}

Psq c'est un message d'erreur qui s'affiche si la camera n'est pas connectée?
En ce qui concerne les fonctions de la camera je les ai lu et essayé (enfin la plupart).

Voila, et merci beaucoup pour ton aide
Commenter la réponse de raikko21
Messages postés
788
Date d'inscription
mardi 8 juillet 2003
Dernière intervention
8 mars 2017
0
Merci
Bonjour,
Dans ce cas, je te conseille de mettre un message du genre " branchez votre caméra et refaire la procédure d'initialisation.
Sinon je ne vois pas ce qui te gêne, c'est tout de même normal d'arrêter si la caméra n'est pas branchée.

Bon codage.


louis
Commenter la réponse de cs_louis14
Messages postés
33
Date d'inscription
jeudi 30 septembre 2010
Dernière intervention
24 novembre 2011
0
Merci
Bonjour,
OK reçu 5/5, merci beaucoup louis pour ton aide et ta disponibilité.
Bon codage a toi aussi :)


Maths, Physique, Astrophysique, Astronomie, Électronique.... Si je peux aider!
Commenter la réponse de raikko21
Messages postés
788
Date d'inscription
mardi 8 juillet 2003
Dernière intervention
8 mars 2017
0
Merci
Alors siu tu connais quelqu'un qui fait du Python et qui utilise la bibliothèque HDF5, je suis preneur.



louis14
Commenter la réponse de cs_louis14
Messages postés
33
Date d'inscription
jeudi 30 septembre 2010
Dernière intervention
24 novembre 2011
0
Merci
Salut,
Ok, si je trouve quelque chose je te ferais signe.


Maths, Physique, Astrophysique, Astronomie, Électronique... Si je peux aider!
Commenter la réponse de raikko21

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.