Не могу скомпилировать пример с __stdcall в Boost.Python
Я пытаюсь обернуть функцию в Python с помощью Boost.Python
и я сталкиваюсь с проблемами при использовании __stdcall
, Вот пример:
#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);
}
Когда я пытаюсь скомпилировать, я получаю более 100 похожих ошибок, но первые 2:
ошибка C2780: 'boost::mpl::vector10::type&,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,Target *)': ожидается 2 аргумента - 1 при условии C:\boost\boost_1_62_0_python\boost\python\make_function.hpp 104
ошибка C2780: 'boost::mpl::vector10::type&,T0,T1,T2,T3,T4,T5,T6,T7> boost::python::detail::get_signature(RT (__thiscall ClassT::*)(T0,T1,T2,T3,T4,T5,T6,T7) volatile const,Target *)': ожидается 2 аргумента - 1 при условии C:\boost\boost_1_62_0_python\boost\python\make_function.hpp 104
Как видите, я использовал определение BOOST_PYTHON_ENABLE_STDCALL
, который упоминается на этой странице:
но проблема остается той же самой с определением или без него.
Кто-нибудь знает, что я делаю не так?
1 ответ
Вы получите эту ошибку, если определите BOOST_PYTHON_ENABLE_STDCALL после импорта файлов заголовка повышения.