[WDM14] Interface DOT NET
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:
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:
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 :
Citation:
- 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.