Bonjour a tous, j'ai un petit pb de passage du monde non manage dans le monde manage..
je possede une dll ecrite en je ne sais quoi (C++ je pense) dont une des methode est
le but étant de passer la fonction de gestion "log" en tant que parametre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part typedef void(* cm2::fem::solver_static_Newton::operating_mode_type::display_handler_type)(unsigned level, const char *msg)
pour le moment j'utilise une fonction globale, exterieure a une classe, qui est :
et elle est passee en pointeur dans la classe de la dll par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4solver_static_Newton::operating_mode_type solver_operatingmode; // initialise le mode operatoire du solveur solver_operatingmode.display_hdl = &logfile_handler;
Or, je voudrai utiliser des evenements .NET et de ce fait utiliser une
methode interne a une classe managee.
j'ai un peu regarde les fonctions de mashalisations et de delegate.
j'ai une classe managee :
et la j'utilise la fonction de marshalisation pour passer du monde manage au non manage par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
Le code compile sans warnings mais plante a l'execution comme si il n'arrivait pas a passer de messages ou d'arguments.
Existe t'il une autre voie pour faire cela ?

 

 
		
		 
         
 

 
			
			

 
   
 


 passage d'une fonction d'une classe managee dans une dll c++ ou C (?) par delegate
 passage d'une fonction d'une classe managee dans une dll c++ ou C (?) par delegate
				 Répondre avec citation
  Répondre avec citation 
			
			





 
						 
						
 
			 Envoyé par denisdg
 Envoyé par denisdg
					
 
						 
			
Partager