Bonjour,

Je dois utiliser Swig pour générer un wrapper d'une librairie C++ vers C#.
C'est la première fois que je l'utilise. J'ai aussi peu d'expérience en C#.
J'ai réussi à modifier le projet (Visual 2013) pour ajouter un .i et permettre la génération du .cxx et des .cs.
Dans mon .i, j'ai ajouté les includes de mes headers c++ (et windows.i)
J'essai simplement d'utiliser la DLL C++ dans un exe C# pour le moment.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
%module ACOReaderd
 
%{
 
    #include "MonHeader.h"
%}
 
%include <windows.i>
%include "MonHeader.h"
J'ai un problème.
A l’exécution, sur un projet simple de test (une ou deux classes et fonctions): Ça fonctionne.
Avec ma librairie plus grosse par contre: Lorsque j'essai d’instancier une classe Cpp dans le C# (avec le wrapper), mon programme me lance une exception me disant qu'il ne trouve pas la DLL (qui est portant là)

1) Est ce que quelqu'un à un peu d'expérience avec Swig. D'où ça pourrait venir ?

Ma librairie à wrapper utilise des classe QT (QString, QMap, QFile,... mais pas d'ihm) J'ai aussi fais un test en créant une DLL c++ simple contenant des QString pour tester Swig dessus. Ça compile et ça s’exécute mais les QString renvoyé par mes fonctions traduites en C# affichent un contenu égale à : "SWIGTYPE_p_QString".
Je me doutais bien que le wrapper aurait du mal à convertir un QSting en String C#.

2) Comment gérer ces types QT avec Swig ?

Si je n'ai pas été assez clair, je peux essayer de reformuler
Merci