Bien le bonjour � toi, peuple du forum dotNET (qui ne doit plus me voir bien souvent ces derniers temps).
Comme vous pourrez le voir si vous avez la curiosit� de cliquer sur ma signature, je suis en ce moment en train d'�crire un wrapper pour la librairie Irrlicht se servant uniquement des P/Invoke (pour des raisons d'aspect multi-plateforme principalement).
Pour planter le sch�ma, voil� comment c'est fait :
-Un wrapper en C/C++ r��crit toutes les fonctions de la librairie de base sous la forme :
-Un wrapper en C# appelle tout �a en P/Invoke et patati et patata.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4 SceneNode_Fonction(void *ptr, ...arguments...) { ((SceneNode)ptr)->fonction(arguments); }
Ensuite pour la communication code natif => code manag�, j'ai utilis� des delegates en C# et des callbacks en C... Rien de bien sorcier.
Aujourd'hui je me heurte � un probl�me de m�thode n�anmoins :
J'ai dans le code natif des interfaces dont quelqu'un qui utilise la librairie peut h�riter (par exemple pour cr�er ses propres "SceneNodes") et j'aurais besoin de les recopier en C#.
Il faut savoir que ces interfaces poss�dent des dizaines de fonctions virtuelles que l'utilisateur peut r��crire (ou non).
Pour faire �a, avant je faisais des callbacks en C... Ca marchait mais comme l� j'ai des dizaines de fonctions �a ferait l�g�rement lourd... De plus se pose un probl�me d�s lors que le code natif comme le code manag� peuvent avoir besoin d'acc�der � ces fonctions virtuelles (ce n'est pas vraiment un probl�me mais l� encore, �a exige plus de "sale" code).
Je ne pense pas qu'il y ait une m�thode "miracle" mais il y aurait-il une "construction" ou une "architecture" qui pourrait me permettre de rendre le tout moins lourd ?
Merci d'avance,
DeusXL
PS : Le sujet est vraiment tr�s cibl� et tr�s pr�cis mais pas tr�s simple � expliquer. Veuillez d'avance m'excuser si ce n'est pas tr�s clair, je t�cherais d'expliquer ce qui est n�cessaire.
Partager