Code: Alles auswählen
>>> def myfunc(): return
>>> myfunc
<function myfunc at 0x0051BC30>
Code: Alles auswählen
>>> def myfunc(): return
>>> myfunc
<function myfunc at 0x0051BC30>
Ja, das ist die Speicheradresse des Objektes. Aber das ist nichts, auf das ich aufbauen würde, denn ist ist nirgends festgeschrieben, dass das die Speicheradresse sein muss. Aber das was du an deine C++-Funktion übergibst ist ja schon ein Zeiger auf deine Funktion. Den musst du nur speichern(Typ: object). Siehe: http://www.boost.org/doc/libs/1_41_0/li ... bject.htmlKrauzi hat geschrieben:hm ich habe mich jetzt mal etwas "rangetastet". Wenn ich jetzt einfach mal eine funktion nehme und sie dann im idle "aufrufe":Könnte das ^^^^^^^^ der Zeiger sein? Damit könnte ich dann eigentlich eindeutig die Funktion per registerHandler funktion in c++ registrieren.Code: Alles auswählen
>>> def myfunc(): return >>> myfunc <function myfunc at 0x0051BC30>
Code: Alles auswählen
void test( string msg="FU" ){ cout << msg << endl; }
BOOST_PYTHON_MODULE(gHost)
{
def("test", test);
}
Code: Alles auswählen
Traceback (most recent call last):
File "python/__init__.py", line 10, in <module>
gHost.test( )
Boost.Python.ArgumentError: Python argument types in
gHost.test()
did not match C++ signature:
test(class std::basic_string<char,struct std::char_traits<char>,class std::a
llocator<char> >)
Vermutlich weil die Klasse „str“ heißt.Interessant, mit typ "string" sollte das eigentlich gehen.
Hat jemand eine Idee, warum das nicht funzt?