我尝试使用Boost.Python
在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多个类似的错误,但前两个是:
错误C2780: &#39;升压:: MPL :: vector10 ::类型&安培;,T0,T1,T2,T3,T4,T5,T6,T7&GT; boost :: python :: detail :: get_signature(RT(__ thiscall ClassT :: * )(T0,T1,T2,T3,T4,T5,T6,T7)const,Target *)&#39;:需要2个参数 - 1 提供 C:\ boost \ boost_1_62_0_python \ boost \ python \ make_function.hpp 104
错误C2780: &#39;升压:: MPL :: vector10 ::类型&安培;,T0,T1,T2,T3,T4,T5,T6,T7&GT; boost :: python :: detail :: get_signature(RT(__ thiscall ClassT :: * )(T0,T1,T2,T3,T4,T5,T6,T7)volatile const,Target *)&#39;:预计2 参数 - 提供1 C:\ boost \ boost_1_62_0_python \ boost \ python \ make_function.hpp 104
如您所见,我使用了this page:中提到的定义BOOST_PYTHON_ENABLE_STDCALL
但无论是否定义问题都会保持不变。
有谁知道我做错了什么?
答案 0 :(得分:-1)
如果在导入boost头文件后定义BOOST_PYTHON_ENABLE_STDCALL,则会出现该错误。