Bonjour à tous,

Je suis actuellement en train d'ecrire un objet qui va me servir à utiliser une dll non managée dans du code managé. Voici en gros le principe au cas ou je m'exprime mal et que vous ne compreniez pas vraiment le but :

Dll non managée avec des types C/C++ non utilisables en dotnet -> appel des fonctions non managées dans un objet C++ utilisant les deux sortes de types : managé et non managé -> appel à cet objet en code managé.

Pour résumer, mon objet C++ va se charger de traduire les types non managés en types managés. Bref, je crois que je me repete là ^^


Donc mon objet est de la sorte :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
class objetBT
{
void RegisterCallBack()
{
BT_RegisterCallBack(EVENT_CONNECT, myCallBackConnect)
}
 
void myCallBackConnect()
{
//Je raise un event ici
}
}
Ceci est le principe de ma classe, pas le code définitif !
Donc dans registerCall back j'appelle BT_RegisterCallback qui est une fonction de la dll non managée, elle est comme ca et je ne peux pas la changer.
Via cette fonction je lie l'evenement EVENT_CONNECT à la methode MyCallBackConnect comme ça lorsque la dll non managée lance un évenement, elle execute le code de ma fonction mycallbackconnect.
Seul probleme : ce que j'ai indiqué comme maniere de faire est incorrect. Ca ne passe pas en C++. Par contre si je place void MyCallBackConnect hors de la classe, ça passe mais ce n'est pas mon but car je souhaite lancer un evenement quand j'execute la fonction MyCallBackConnect.

Je voulais donc savoir si quelqu'un pouvait me filer un petit coup de main pour ça svp ? car je ne sais pas du tout comment faire.

Petit PS : mon objet ne doit etre instancié qu'une seule fois (si ça peut aider, car je crois qu'il pourrait y avoir un rapport)

Merci à tous

@+