On Mon, Aug 23, 2010 at 5:02 AM, Christian Verbeek <verbeek@servicerobotics.eu> wrote:
 Just to focus discussion a little bit more. Windows comes into play in
my eyes only as GUI front-end to a ROS system running on a Linux-PC
equipped robot. Tools like roslaunch do not make any sense on windows
where I need to hide everything behind a shine GUI.

Of course it would be very nice to just compile ros libraries directly
with Visual Studio on windows. But maybe the mingw cross-compiler is the
best one can do right now. I would even link the whole ROS functionality
into a shared library build with mingw on Linux giving that shared
library an interface not using ros at all. That would mean I have to
translate messages into something usable in my windows application but
this has to be done anyway.

That leads to the question if it is possible to implement a ROS node
into a shared library and starting that node without roslaunch and
environment variables like ROS_MASTER_URI. Does anyone did something
like that already?

It should be relatively trivial to manually create vcproj's for roscpp and all its dependencies, but you'll need to do the message generation manually.  I'm not sure how useful that would be though, since you may want a lot of the low-level support libraries and messages as well (such as the common and geometry stacks).  If all you want is roscpp though it should be doable.

As far as environment variables, I believe everything you'd need is also available as a command-line option and can be specified through one of the ros::init() versions.  Specifically: __master and possibly __ip or __hostname.

Josh