Bonjour,

J'ai besoin de faire un wrapper d'une librairie de chargement de fichier C++ utilisant QT Core (pas d'IHM, uniquement QString, QMap,QVector, QSet,...).

Je me demande qu'elle est la meilleur manière de faire un Wrapper vers C#. Je n'en ai jamais fais. J'ai l'impression que j'ai plusieurs options:

1) J'ai regardé des outils comme Swig ou CppSharp. J'ai l'impression que les classes C++ à wrapper doivent suivre une certaines guideline pour que ça fonctionne. QString non gérée. STL non plus ou mal géré. Je me trompe ? Est ce que ce genre d'outil est conçu pour wrapper directement des librairies C++ ou est ce qu'il faut les appliquer à des interfaces C++ simplifiées créés au préalable ?

2) Une autre solution est d'utiliser du C++ managé pour créer une DLL .Net qui inclus la DLL C++ native par des classes en C++ managé qui contiennent des instances de classes C++. Dans le cas de ma librairie de parsing, il y a beaucoup de classes qui ne font pas grand chose (elles stockent les données lus). Je dois donc réécrire toutes les classes en C++ managé ?

3) Créer des classes C++ natives en interface de la librairie, utilisant du code compatible avec des outils comme Swig ou CppSharp. Dans ce cas j'aurai aussi à réécrire presque toutes les classes.

Est ce que quelqu'un aurait des conseils et liens vers des documentations sur le sujet (pas basiques et "théoriques" du genre comment accéder à du code natif depuis un code C#. Mais expliquant comme faire les bons choix. Ce qu'il faut faire ou ne pas faire. Des cas d'utilisations).

Merci