Salut!
Je souhaiterai wrapper une classe d'une librairie C++ dont je dispose pour pouvoir l'utiliser dans un programme en C#.
J'ai essayé de wrapper cette classe, mais j'ai plein d'erreurs....
Voila ma classe en C++, c'est:
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
16
17
18
19
20
class VRPN_API vrpn_Analog_Remote: public vrpn_Analog {
    public:
        vrpn_Analog_Remote (const char * name, vrpn_Connection * c = NULL );
 
        virtual void mainloop();
 
        virtual int register_change_handler(void *userdata,
		vrpn_ANALOGCHANGEHANDLER handler) {
	  return d_callback_list.register_handler(userdata, handler);
	};
        virtual int unregister_change_handler(void *userdata,
		vrpn_ANALOGCHANGEHANDLER handler) {
	  return d_callback_list.unregister_handler(userdata, handler);
	}
 
    protected:
        vrpn_Callback_List<vrpn_ANALOGCB> d_callback_list;
 
        static int VRPN_CALLBACK handle_change_message(void *userdata, vrpn_HANDLERPARAM p);
};
j'ai tenté de wrapper ça comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        [DllImport("vrpndll.dll")]
        extern class  vrpn_Analog_Remote:  vrpn_Analog {
    public vrpn_Analog_Remote (char name, vrpn_Connection c = null );
 
    public   virtual void mainloop();
 
      public  virtual int register_change_handler( userdata,
		vrpn_ANALOGCHANGEHANDLER handler) {
	  return d_callback_list.register_handler(userdata, handler);
	};
        virtual int unregister_change_handler( userdata,
		vrpn_ANALOGCHANGEHANDLER handler) {
	  return d_callback_list.unregister_handler(userdata, handler);
	}
mais bon apparement c'est pas ça!...

bon peut etre quelqu'un pourrait-il me donner la correction?
merci!