
Igor R ha scritto:
My question is: where I have to call CoInitizeEx?
You can start the threads with your own thread-function (instead of io_service::run) that would call CoInitialize(), io_service::run(), CoUninitialize().
Thanks a lot Igor! It was simple...and I didn't thought :-) Now seems to work: void io_worker_thread(void) { #if (WIN32) CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); #endif io_service.run(); #if (WIN32) CoUninitialize(); #endif }; EXTERN_C EUROATLIB_API TETRAMotoHndl CALL GetTETRAMotoObj() { .... // run the IO service as a separate thread //io_service_thread.reset( // new boost::thread( // boost::bind(&boost::asio::io_service::run, &io_service) // ) //); io_service_thread.reset(new boost::thread(io_worker_thread)); ... }; Thanks! Daniele.