boost python 参数结构体指针_Boost-Python原始指针构造函数

我想使用boost-python向python公开一个C++库。该库实际上包装了一个底层C api,因此使用了很多原始指针。Boost-Python原始指针构造函数

// implementation of function that creates a Request object

inline Request Service::createRequest(const char* operation) const

{

blpapi_Request_t *request;

ExceptionUtil::throwOnError(

blpapi_Service_createRequest(d_handle, &request, operation)

);

return Request(request);

}

// request.h

class Request {

blpapi_Request_t *d_handle;

Element d_elements;

Request& operator=(const Request& rhs); // not implemented

public:

explicit Request(blpapi_Request_t *handle);

Request(RequestRef ref);

Request(Request &src);

};

// request.cpp

BOOST_PYTHON_MODULE(request)

{

class_;

class_("Request", init())

.def(init())

;

}

虽然request.cpp编译成功,当我尝试使用我收到以下错误的对象:

// error output

TypeError: No to_python (by-value) converter found for C++ type: class Request

中,为了调用这个Python代码的样子:

from session import *

from service import *

from request import *

so = SessionOptions()

so.setServerHost('localhost')

so.setServerPort(8194)

session = Session(so)

# start sesssion

if not session.start():

print 'Failed to start session'

raise Exception

if not session.openService('//blp/refdata'):

print 'Failed to open service //blp/refdata'

raise Exception

service = session.getService('//blp/refdata')

request = service.createRequest('ReferenceDataRequest')

其他对象(SessionOptions,Session,Service)等也是我已经成功创建boost-python包装的C++对象。

当我从升压Python文档这个有事情做与周围将原料指针理解,但我真的不知道我应该做些什么?

2010-06-23

m0nonoke

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值