Appel c depuis c# / appel c# depuis c

Contenu du snippet

Permet a une application C# de donner une fonction callback à une Dll en C, et à cette Dll d'appeler la callback à tout moment.

Source / Exemple :


//En C# :

        [DllImport("MA_DLL.dll", CallingConvention = CallingConvention.Winapi)]
        private static extern void GiveCallbackToC(MulticastDelegate Callback_P);

        private delegate void T_Callback(bool ParamExemple_P);
        private T_Callback CallbackDelegate;
        private void MaCallback (bool ParamExemple_P)
        {
        }

        public void UneFonctionCSharp()
	{
            CallbackDelegate = new T_Callback(MaCallback);
            GiveCallbackToC(CallbackDelegate);
        }

//En C :

        typedef void (__stdcall *T_CALLBACK) (bool ParamExemple_P);
        static T_CALLBACK MaCallback;

        void GiveCallbackToC(T_CALLBACK Callback_P)
        {
            MaCallback = Callback_P;      
        }

        void UneFonctionC()
        {
	    MaCallback (true);         //Appel de la callback C# depuis le C
        }

Conclusion :


A utiliser avec modération ;)

A voir également

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.