4

我正在尝试使用 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中提到的 define :

但是无论是否定义它,问题都保持不变。

有谁知道我做错了什么?

4

1 回答 1

-1

如果在导入 boost 头文件后定义 BOOST_PYTHON_ENABLE_STDCALL,您将收到该错误。

于 2017-05-30T13:52:22.643 回答