Ich versuche, eine C++-Klasse (nennen wir sie "Spam"), die von jemand anderem geschrieben wurde, mit Swig zu verpacken, um sie für Python freizugeben. Nachdem ich mehrere Probleme gelöst habe, kann ich das Modul in Python importieren, aber wenn ich versuche, ein Objekt einer solchen Klasse zu erstellen, erhalte ich den folgenden Fehler:
foo = Spam.Spam('abc',3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "Spam.py", line 96, in __init__
this = _Spam.new_Spam(*args)
NotImplementedError: Wrong number of arguments for overloaded function 'new_Spam'.
Possible C/C++ prototypes are:
Spam(unsigned char *,unsigned long,bool,unsigned int,SSTree::io_action,char const *)
Spam(unsigned char *,unsigned long,bool,unsigned int,SSTree::io_action)
Spam(unsigned char *,unsigned long,bool,unsigned int)
Spam(unsigned char *,unsigned long,bool)
Spam(unsigned char *,unsigned long)
Beim Googeln habe ich festgestellt, dass der Fehler wahrscheinlich durch die Art der Argumente und nicht durch die Anzahl verursacht wird (was ziemlich verwirrend ist), aber ich kann ihn immer noch nicht identifizieren. Ich vermute, dass das Problem in der Übergabe einer Zeichenkette als erstes Argument liegt, habe aber keine Ahnung, wie man es beheben kann (bedenken Sie, dass ich fast kein C/C++ kenne).