Ну у cppcms::service есть метод post, которым можно отправить в его boost::asio::io_service указатель на функцию, в которой обрабатывать сообщения из Qtшного event loop. Но проще было бы, если бы cppcms::service позволял бы использовать методы poll/poll_one у io_service.
Например: у каждого майкрософтовского компилятора свой рантайм. Из-за этого очень тяжело взаимодействовать с кодом из разных DLL, если одна собрана, допустим, 2008ой студией, другая 2010 и так далее.
У процесса с такими DLL, загрузится несколько версий рантайма. У каждой будет СВОЙ менеджер кучи и СВОЯ копия переменных окружения.
И нужно будет очень внимательно следить за тем, кто и где освобождает и выделяет память. Потому что если случайно сделать free объекту из другого рантайма, то программа упадёт в 100% случаев.
Есть даже несколько статей на Хабре об этом, да и сам я не так давно на это натыкался.
Если я использую в расширении несколькоё сторонних библиотек, то я не могу просто так передавать объекты из одной в другую, если все библиотеки собраны разными компиляторами. Потом что в каждой либе (и Питоне) будет своя копия рантайма.
Проблема решается, если передавать всё по указателям и в каждой библиотеке заниматься управлением памятью. Или, если собирать всё одним и тем же компилятором (что не всегда возможно).
И это я еще про переменные окружения ничего не сказал!
В Linux такой проблемы нет, там рантайм один на систему.
Ну можно же вместо HTTP сервера на коленке использовать WCF-сервис c WebHttpBinding (и пускать всё в self hosted режиме). Раз уж решили .NET использовать.
Простите, конечно, давайте, может, для каждой фичи Automator по статье на Хабре создадим? Я понимаю, что OS X — прекрасная система, но я бы с удовольствием почитал материал про её внутренне устройство, или закопанные глубоко в недра /System консольные утилиты, чем описание простого и обыденного действия.
Как раз-таки наоборот. Квадрокоптер и так имеет программу стабилизации в полёте, так что этому можно любой аппарат научить. А организовать групповой полёт из 20 машин всё-таки сложнее.
И от «версии» языка это не зависит. Это зависит от версий компилятора и рантайма, с которыми собраны DLL.
У процесса с такими DLL, загрузится несколько версий рантайма. У каждой будет СВОЙ менеджер кучи и СВОЯ копия переменных окружения.
И нужно будет очень внимательно следить за тем, кто и где освобождает и выделяет память. Потому что если случайно сделать free объекту из другого рантайма, то программа упадёт в 100% случаев.
Есть даже несколько статей на Хабре об этом, да и сам я не так давно на это натыкался.
Если я использую в расширении несколькоё сторонних библиотек, то я не могу просто так передавать объекты из одной в другую, если все библиотеки собраны разными компиляторами. Потом что в каждой либе (и Питоне) будет своя копия рантайма.
Проблема решается, если передавать всё по указателям и в каждой библиотеке заниматься управлением памятью. Или, если собирать всё одним и тем же компилятором (что не всегда возможно).
И это я еще про переменные окружения ничего не сказал!
В Linux такой проблемы нет, там рантайм один на систему.
— Так то ты по сценарию играл, а здесь нелинейный сюжет.