[EMAIL PROTECTED] wrote: > Dear All, > > I have some functions written in C++, which I try to approach from > python using swig. In the C++ functions I use std::cout to print stuff > to output. Everything works fine, but the only problem that I have is > that when I start IDLE and use the functions what std::cout should > print to the "IDLE console" simply does not appear. When I don't use > IDLE but simply double click on the .py script, it works all fine. I > was wondering how I could make sure that std::cout would print also to > IDLE. Thanks a lot in advance for helping to answer my question. > > RR
Hmmmmm... probably tricky. Most GUIs replace 'sys.stdout' by something that behaves like a Python(!) stream, without actually touching file descriptor 1 (which is the actual process file descriptor for stdout). >From my experience with embedding/extending Python this is going to be a bit nasty, because you would need to get access to the actual stream object in Pythons 'sys' module (easy...), wrap this one in C++ to create a C++ ostream descendant that uses an underlying Python stream (here's the work...) and use it to replace 'cout' (that one's simple after all...). Are you sure you want to tackle this? I've always tried to avoid it and lived with the fact that such an extension was only printing something useful to its output when used as a console application. I haven't had a deeper look into the BOOST Python bindings, (www.boost.org) but they have a rather good reputation. Perhaps there is something in it that takes away most of the burden. -- juergen 'pearly' perlinger "It's hard to make new errors!" -- http://mail.python.org/mailman/listinfo/python-list