2016-11-24 7 views
4

Ich versuche, eine Funktion in Python mit Boost.Python zu wickeln, und ich habe Probleme, wenn ich __stdcall verwenden. Hier ein Beispiel:Kann nicht mit __stdcall in Boost.Python kompilieren

#define BOOST_PYTHON_STATIC_LIB 
#define BOOST_PYTHON_ENABLE_STDCALL 
#include <boost/python.hpp> 
#include <boost/python/signature.hpp> 

void __stdcall f(void) 
{ 
    return; 
} 

using namespace boost::python; 

BOOST_PYTHON_MODULE(MyPyDLL) 
{ 
    def("func", f); 
} 

Wenn ich versuche zu kompilieren ich mehr als 100 Ähnliche Fehler, aber die ersten 2:

Fehler C2780: ‚boost :: mpl :: vector10 :: Typ &, T0, T1, T2, T3, T4, T5, T6, T7> boost :: python :: detail :: get_signature (RT (__thiscall ClassT :: * ) (T0, T1, T2, T3, T4 , T5, T6, T7) const, Ziel *) ': erwartet 2 Argumente - 1 bereitgestellt C: \ boost \ boost_1_62_0_python \ boost \ python \ make_function.hpp 104

Fehler C2780: ‚boost :: :: mpl vector10 :: type &, T0, T1, T2, T3, T4, T5, T6, T7> boost :: :: :: Detail Python get_signature (RT (__thiscall ClassT :: * ) (T0, T1, T2, T3, T4, T5, T6, T7) flüchtige const, Ziel *) ': erwartet 2 Argumente - 1 bereitgestellt C: \ boost \ boost_1_62_0_python \ boost \ python \ make_function.hpp 104

Wie Sie sehen können, habe ich die Definition verwendet BOOST_PYTHON_ENABLE_STDCALL, die in this page:

aber das Problem bleibt die s erwähnt wird mit oder ohne Definition.

Weiß jemand was mache ich falsch?

Antwort

-1

Sie erhalten diesen Fehler, wenn Sie BOOST_PYTHON_ENABLE_STDCALL definieren, nachdem Sie die Boost-Headerdateien importiert haben.