Utiliser capCreateCaptureWindow en Windows Form [Résolu]

raikko21 33 Messages postés jeudi 30 septembre 2010Date d'inscription 24 novembre 2011 Dernière intervention - 7 mai 2011 à 14:31 - Dernière réponse : raikko21 33 Messages postés jeudi 30 septembre 2010Date d'inscription 24 novembre 2011 Dernière intervention
- 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 

10 réponses

Répondre au sujet
cs_louis14 788 Messages postés mardi 8 juillet 2003Date d'inscription 8 mars 2017 Dernière intervention - 10 mai 2011 à 13:23
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_louis14
cs_louis14 788 Messages postés mardi 8 juillet 2003Date d'inscription 8 mars 2017 Dernière intervention - 10 mai 2011 à 13:20
0
Utile
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
raikko21 33 Messages postés jeudi 30 septembre 2010Date d'inscription 24 novembre 2011 Dernière intervention - 11 mai 2011 à 01:17
0
Utile
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
raikko21 33 Messages postés jeudi 30 septembre 2010Date d'inscription 24 novembre 2011 Dernière intervention - 11 mai 2011 à 01:58
0
Utile
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
cs_louis14 788 Messages postés mardi 8 juillet 2003Date d'inscription 8 mars 2017 Dernière intervention - 11 mai 2011 à 08:23
0
Utile
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
raikko21 33 Messages postés jeudi 30 septembre 2010Date d'inscription 24 novembre 2011 Dernière intervention - 12 mai 2011 à 01:24
0
Utile
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
cs_louis14 788 Messages postés mardi 8 juillet 2003Date d'inscription 8 mars 2017 Dernière intervention - 12 mai 2011 à 08:11
0
Utile
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
raikko21 33 Messages postés jeudi 30 septembre 2010Date d'inscription 24 novembre 2011 Dernière intervention - 13 mai 2011 à 12:58
0
Utile
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
cs_louis14 788 Messages postés mardi 8 juillet 2003Date d'inscription 8 mars 2017 Dernière intervention - 13 mai 2011 à 13:51
0
Utile
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
raikko21 33 Messages postés jeudi 30 septembre 2010Date d'inscription 24 novembre 2011 Dernière intervention - 13 mai 2011 à 23:41
0
Utile
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.