Articles of swig

Comment créer une extension pour une bibliothèque déjà emballée via SWIG?

J’ai une bibliothèque Il est emballé via SWIG. Je veux créer un plugin pour l’étendre. Plugin nécessite une classe de la bibliothèque déjà encapsulée pour fonctionner avec quelque chose comme void init( oldT old); . La bibliothèque est utilisée à partir de Java et de c #. Maintenant, ce plugin sera également utilisé à partir […]

SWIG ne peut pas convertir le type typedef correct

J’utilise SWIT pour convertir un projet vc en python. J’ai trouvé quand une structure a un membre dont le type est “typedef char TEXT [16]” ne peut pas être converti correctement par exemple: typedef char TEXT[16]; struct MYSTRUCT { TEXT TradingDay; }; Le wrapper cpp ne peut pas comstackr correctement. “erreur C2075: ‘Cible de l’opérateur […]

SWIG_SHARED_PTR macro avec classe basée sur un modèle

J’utilise SWIG avec des pointeurs partagés boostés pour créer des extensions Python. Mon problème actuel est que la macro SWIG_SHARED_PTR semble fonctionner différemment avec les classes basées sur des modèles. Je donnerai deux exemples, un sans gabarit (exemple) et un avec gabarit (exemple2). Je vais d’abord inclure le code et, à la fin, montrer la […]

Passer la référence de Python à la fonction c ++ encapsulée avec swig pour la valeur de retour

Disclaimer, je suis un swig et python noob J’ai ma propre bibliothèque c ++ et je l’enveloppe pour l’utiliser en python avec swig. Ma classe c ++ est comme ceci: public MyCppClass() { public: void MyFunction(char* outCharPtr, ssortingng& outStr, int& outInt, long& outLong) { outCharPtr = new char[2]; outCharPtr[0] = “o”; outCharPtr[1] = “k”; outStr […]

Swig convertit le vecteur en tableau PHP natif

Je commence à travailler avec swig et php , et je voudrais renvoyer un std::vector à mon code php.J’ai essayé (tout le travail de compilation). mon fichier swig: %module example %include %include %{ extern std::vector testSwig(const char *path); %} //try here to convert vector to native php array %typemap(out) const std::vector & { array_init($result); Array::const_iterator […]

SWIG – Convertir une énumération C ++ en une énumération Python

Je travaille pour obtenir une énumération de classe C ++ en énumération python à l’aide de swig. J’ai l’implémentation suivante dans le fichier example.h. namespace colors{ enum class Color{ RED = 0, BLUE = 1, GREEN = 2 }; } Mon fichier d’interface Swig est %module api %{ #include “example.h” %} %include “example.h” Mais après […]

Typographie SWIG uint8_t * de C / C ++ à java.nio.ByteBuffer

J’essaie de passer un tampon d’entrée et un tampon de sortie à une classe Java à partir de C ++. Pour des raisons d’efficacité, je dois utiliser un ByteBuffer. Les deux tampons ont été alloués dans la partie C ++ et je dois les transmettre à une fonction java qui utilisera le tampon d’entrée pour […]

make échoue sur swig create ruby ​​wrapper

J’essaie d’utiliser swig pour générer des wrappers pour certaines classes c ++. J’avais des problèmes avec le code réel, alors j’ai juste essayé ce fichier d’interface simple, et j’ai les mêmes erreurs, alors je dois faire quelque chose de très faux, d’idées? voici le fichier d’interface simple que j’essaie de créer et nommé MyClass.i class […]

CX de proxy -> wrappers de classes C ++ utilisant SWIG

Dites que j’ai le code C ++ suivant: /* File : example.h*/ typedef void (__stdcall *CppCallback)(int code, const char* message); class CppClass { public: CppClass() {}; void call(CppCallback callback) { callback(1234, “Hello from C++”); } }; Et puis j’ai la contrepartie C #: /* File : example.cs */ using System; using System.Text; public delegate void […]

Les arguments de chaîne ne sont pas reconnus par SWIG

J’ai un problème frustrant qui m’a fait passer beaucoup de temps mais je n’ai pas trouvé de solution. Je veux utiliser la classe C ++ en PHP avec SWIG. J’ai généré mon object partagé et cela fonctionne très bien pour certaines méthodes, mais j’ai cette erreur chaque fois que j’appelle les méthodes avec des arguments […]