Не могу скомпилировать пример с __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 после импорта файлов заголовка повышения.

Другие вопросы по тегам