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# :
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 é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
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()
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 :
- 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
Si quelqu'un peut m'aider ?

Merci,

Gérard.