probleme dll - C#/.NET managed - Programmation
Marsh Posté le 25-01-2005 à 21:28:35
ton delegate CallBack, à quoi il sert exactement ? tu l'as associé à aucun évènement...
edit: et ferme ta balise [ cpp] stp
Marsh Posté le 26-01-2005 à 10:41:53
justement cété juste pour tester mais ça rentre jamais dans la fonction !!!!! klk1 peut m'aider s'il vous plait , parce que j'ai deja pris un exemple de MSDN pour EnumWindows et ça a fonctionné à merveille mais pour cette fonction il ne repond pas . merci d'avance
Marsh Posté le 26-01-2005 à 11:02:33
Harkonnen a écrit : ton delegate CallBack, à quoi il sert exactement ? tu l'as associé à aucun évènement... |
il le passe a ligneInitialize
>>sferteh : bin ptet que la fonction que t'appelle rapelle pas ta callback, tout simplement ?
Marsh Posté le 26-01-2005 à 16:43:59
Ya un chapitre dans la MSDN sur les envois de callback entre du code non managé (ta dll) et du code managé (ton c#). Lis le, car il y a des choses à faire et à ne pas faire (dont je me souviens plus, mais en cherchant tu retrouveras).
Marsh Posté le 25-01-2005 à 17:10:31
salut tout le monde , je suis debutant en C# et j'ai un probleme lorsque je fais reference à la DLL voila mon programme le probleme est que la chaine "ok" n'apparait jamais lors de l'execution . c a d qu'il ne rentre pas dans la fonction LineCallBackProc !!! quelqu'un peut m'aider s'il vous plait ? merci .
[cpp]
using System;
using System.Runtime.InteropServices;
public delegate void CallBack (long hDevice , long dwMsg , long dwCallbackInstance , long dwParam1 , long dwParam2 ,long dwParam3 ) ;
public class Ligne {
protected long m_hLineApp ;
protected long m_numlines ;
protected long m_hinstance ;
public Ligne ()
{
this.m_hLineApp = 0 ;
this.m_numlines = 0 ;
this.m_hinstance = 0;
}
[DllImport("tapi32.dll" )]
public static extern long lineInitialize (long lphLineApp , long hInstance , CallBack lpfnCallback , string lpszAppName , long lpdwNumDevs ) ;
public static void Main()
{
long rc ;
Ligne line = new Ligne() ;
CallBack myCallBack = new CallBack(Ligne.LineCallbackProc);
rc = lineInitialize(line.m_hLineApp,line.m_hinstance,myCallBack, "",line.m_numlines);
Console.WriteLine(rc);
Console.WriteLine(line.m_hLineApp);
Console.WriteLine(line.m_hinstance);
}
public static void LineCallbackProc(long hDevice ,
long dwMsg ,
long dwCallbackInstance ,
long dwParam1 ,
long dwParam2 ,
long dwParam3 )
{
Console.WriteLine ("ok" ) ;
}
}