Ich erstellte ein Lua-Modul mit einer sehr großen Anzahl von umschlossenen C++ - Klassen mit swig. Die Wrapper werden ohne Probleme generiert und kompiliert (mit -Wall). An einigen Stellen, die ich gefunden habe, stoße ich jedoch auf das folgende Problem: Die grundlegende Zuweisung von Mitgliedsdaten schlägt fehl.Grundlegende Zuordnung von Swig Wrapped Variablen schlägt fehl
Wenn ich laufen:
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
> require('myModule')
> a = myModule.ClassA()
I kann dann überprüfen, ob der MetaTable auf "A" angebracht all seiner Mitgliedsdaten enthält (in diesem Fall Felder "b" und "c", der Klassentyp ClassB . und ClassC respectively)
I kann weiter tun:
> a.b = myModule.ClassB()
die erfolgreich b auf eine neue Instanz von ClassB() neu zuweist. Allerdings, wenn ich gehe zu tun:
> a.b.c = myModule.ClassC()
mir die Fehlermeldung:
Error in ClassB_c_set (arg 2), expected 'ClassC *' got 'ClassB *'
Als ob der Ausdruck auf der rechten Seite des ‚=‘ war ein Ziel der gleichen Art wie die Element, das das Datenfeld enthält, das neu zugewiesen werden soll. Ich bin mir sicher, dass ich etwas Einfaches vermissen muss, aber ich habe meinen Kopf für ein paar Stunden gegen die Wand geschlagen, jetzt ohne Erfolg.
Hat jemand irgendwelche Gedanken? Vielen Dank!