Bonjour,
J'ai besoin d'interfacer des assemblages DOT NET en Windev, le problème est que je n'ai jamais fait de C# et que je possède que des exemples en C# pour écrire cet interface avec la caméra, le lecteur RFID, le GPRS, ....
Par exemple, voici la programmation en C# :
J'ai écrit en Windev14 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public Form1() { InitializeComponent(); this.KeyPreview = true; cam = new AT570CamLib_NET.AT570CamLib(); cam.OnCameraStatus += new AT570CamLib_NET.AT570CamLib.OnCameraStatusEventHandler(cam_OnCameraStatus); AppPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); if (cam.OpenEx(label1.Handle)) InitDisplayItem(); else MessageBox.Show("Open Fail!"); } void cam_OnCameraStatus(int EventCode) { if (EventCode == 1) { Play_Sound(); textBox1.Text = Convert.ToString(Convert.ToInt32(textBox1.Text) + 1); //MessageBox.Show(cam.GetCaptureName()); } }
J'ai pas de problème pour déclarer mon objet caméra, pour visualiser la vidéo, mais sur la méthode Capture() il y a un déclanchement d'événement qui me renvoi une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 gnIMGHand est un entier système = Handle(IMG_CAM) //Handler du champ IMAGE //Déclaration de la caméra MaCaméra est un AT570CamLib //Récupérer les evenememts dans la procedure 'CameraEvent' MaCaméra:OnCameraStatus += DotNetDélégué(CameraEvent,"AT570CamLib.OnCameraStatusEventHandler") //Ouverture et debut didéo SI PAS MaCaméra:OpenEx(gnIMGHand) ALORS nValErreur est entier = MaCaméra:get_GetLastError() Erreur("Erreur Camera : "+nValErreur) RETOUR FIN // Exemple de récupération de données texte SAI_VERSION = MaCaméra:get_Version() //Début de l'affichage MaCaméra:previewStart()
Si quelqu'un peut m'aider ?- Que s'est-il pass\'e9 ?\par
Le framework .NET a renvoy\'e9 l'erreur suivante : \par
System.NullReferenceException: NullReferenceException\par
at CAMMsgWnd.WndProc()\par
at Microsoft.WindowsCE.Forms.MessageWindow._WndProc()\par
at AT570CamLib_NET.AT570CamLib.AT570_CAM_Capture()\par
at AT570CamLib_NET.AT570CamLib.Capture()\par
at System.Reflection.RuntimeMethodInfo.InternalInvoke()\par
at System.Reflection.RuntimeMethodInfo.InternalInvoke()\par
at System.Reflection.RuntimeMethodInfo.Invoke()\par
at System.Reflection.MethodBase.Invoke()\par
at WL.CWDDotNetType.bAppelleMethode()\par
at WL.CWDDotNetExecution.nAppelInstance()\par
at WL.CWDDotNetExecution.RunDotNet_FrameworkDefaut()\par
at WL.CWDDotNetExecution.Run()\par
at WL.CWDDotNetExecution.RunWL()\par
at WL.ATID_Camera.Main()\par
\par
V\'e9rifiez que la classe, le membre, la propri\'e9t\'e9 ou la m\'e9thode utilis\'e9e est bien disponible dans le Compact Framework .NET.\par
\par
Merci,
Gérard.
Partager