Voici mon problème :
j'ai une dll écrite en C qui définit cette fonction (qui prend en paramètre une autre fonction callback. Callback qui sera appelée régulièrement par la dll en lui passant entre autre une structure msg) :

Code C de la dll:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
int TLN_listener_add( const char * listener_name,
                             TLN_ListenerFilter * filter,
                             TLN_ListenerCallback callback,
                             void * data );
avec

Code C de la dll:
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
typedef int (*TLN_ListenerCallback)( void * handle, void * data, TLN_Message * msg );
 
typedef struct
{
	unsigned int 	seq_num;
	char		        file_name[TLN_MAX_FILE_NAME + 1];
} TLN_Message;
 
 
typedef struct
{
    unsigned int        types;
    char		    pattern[TLN_MAX_PATTERN + 1];
 
} TLN_ListenerFilter;

Ma question :
Comment utiliser cette fonction et ces structures dans un programme C# ?
J'ai essayé de jouer avec des delegate, des MarshalAs et DllImport mais sans succès.
J'ai bien lu tous les tutoriels mais sans succès ...
Quelqu'un a-t'il la solution ?

Comment passer en paramètre d'une dll C une méthode C# ?
Comment déclarer les structures C en C# pour qu'elles soient correctement gérées par la dll C et par C# ?


Merci