Bonjour,
Je tente d'utiliser swig pour wrapper en csharp une dll que j'ai faite en c++.
Pour l'instant je suis complètement newbie dans le domaine.
L'instanciation des templates les plus simples est assez facile , mais quand le paramètre template est un template, ça semble être plus dur. Par exemple, si j'essaie un
comme dans ce fichier.i :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2std::vector<std::vector<double> >;
La commande swig se passe plutot bien, mais c'est le fichier StdVectorVectorDouble.cs généré qui ne marche pas : j'ai le message suivant : "Alias 'std' not found" à la compilation.
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 #ifndef WRAPPER_SWIG_I # define WRAPPER_SWIG_I %rename(Eval) operator(); %module Swig %include "cpointer.i" %pointer_class(int, intPointer); %pointer_class(double, doublePointer); %include "carrays.i" %array_class(int, intArray); %array_class(double, doubleArray); // LA STL %include std_string.i %include std_map.i %include std_vector.i namespace std { %template(StdVectorInt) vector<int>; %template(StdVectorUInt) vector<unsigned int>; %template(StdVectorDouble) vector<double>; %template(StdVectorBool) vector<bool>; %template(StdVectorVectorDouble) vector<vector<double> >; } // First section: %{ #include "dllC.h" %} // Second section: %include <windows.i> #define DLL_INTERFACE %include "dllC.h" #endif
En effet celui-ci contient des fonctions ayant pour type de retour std::vector< double > qui n'est évidemment pas un type pour c#.
Comme je suis complètement nouveau sur swig, j'imagine que mon message manque de détail !
Anybody has an idea ?
S.
Partager