C++ Can';t在Boost.Python中使用u stdcall编译示例
我试图使用C++ Can';t在Boost.Python中使用u stdcall编译示例,c++,boost-python,msvc12,C++,Boost Python,Msvc12,我试图使用Boost.Python在Python中封装函数,但在使用\uu 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; } u
Boost.Python
在Python中封装函数,但在使用\uu 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);
}
#定义BOOST_PYTHON_STATIC_LIB
#定义BOOST\u PYTHON\u ENABLE\u STDCALL
#包括
#包括
void uu stdcall f(void)
{
返回;
}
使用名称空间boost::python;
BOOST_PYTHON_模块(MyPyDLL)
{
def(“func”,f);
}
当我尝试编译时,我得到100多个类似错误,但前两个是:
错误C2780:
'boost::mpl::vector10::type&、T0、T1、T2、T3、T4、T5、T6、T7>
boost::python::detail::get_签名(RT(_thiscall ClassT:)*
)(T0、T1、T2、T3、T4、T5、T6、T7)常量,目标*)':需要2个参数-1
假如
C:\boost\boost\u 1\u 62\u 0\u python\boost\python\make\u function.hpp 104
错误C2780:
'boost::mpl::vector10::type&、T0、T1、T2、T3、T4、T5、T6、T7>
boost::python::detail::get_签名(RT(_thiscall ClassT:)*
)(T0、T1、T2、T3、T4、T5、T6、T7)易失性常数,目标*)':2
参数-1已提供
C:\boost\boost\u 1\u 62\u 0\u python\boost\python\make\u function.hpp 104
如您所见,我使用了defineBOOST\u PYTHON\u ENABLE\u STDCALL
,这在
但不管有没有定义,问题都是一样的
有人知道我做错了什么吗?如果在导入BOOST头文件后定义BOOST\u PYTHON\u ENABLE\u STDCALL,就会出现该错误