|
Boost : |
From: rwgk_at_[hidden]
Date: 2001-08-31 00:58:41
Ideas:
namespace boost { namespace python {
template class
class_builder<CMyClass>; // explicitly instantiate
}} // namespace boost::python
int main(...)
...
// now I need a PyObject Pointer for my object a
PyObject* pA = BOOST_PYTHON_CONVERSION::to_python(a);
Caveat: I have no experience with embedding Python.
Ralf
--- In boost_at_y..., yahoo_at_p... wrote:
> Hi,
> just tried to figure out this by myself and by reading the docs and
> archives, but I failed:-(
>
> Here is my problem.
>
> I have an app which should
> a) export objects to python and
> b) embedds python.
>
> I managed to build a extension module using boost, which builds
> wrapper classes for my c++ objects.
>
> In my App I include the extension dll to register my apps c++
objects
>
> In the embedded python I load this extension module and get the
> objects using the wrapped registry.
>
> This works really fine. I can get access the apps objects from
python
> and change their attributes from there.
>
> What I don't know is how I can create an PyObject* from one of my
> classes to call a Python function with it? (embedded Python)
>
> Code should like that:
>
> #include "ext_mod.h"
> int main(int, char**)
> {
> Py_Initialize();
> CMyClass a; // create one of my apps class objects
>
> PyObject *pMod = PyImport_ImportModule("ext_mod"); // load the
> extension module
>
> // now I need a PyObject Pointer for my object a
> PyObject* pA = ?????(a);
>
> // after that I would like to add it to the modules dict
> PyModule_AddObject(pMod,"a",pA);
>
> Py_Finalize();
> }
>
> How do I accomplish this?
>
> In the definition for my ext_mod module (boost) I use
> class_builder<CMyClass> myclass(mymod,"a");
> to build an extension class. But how do I use this to call to_python
> ()?
>
> How can I export this from my DLL if I have to use it to get my
> PyObject* from CMyClass?
>
> Thanks a lot
> Joerg
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk