Привет переполнение стека: иногда читатель, первый постер.
Справочная информация:
Windows box с XP SP3, скоро будет обновлен до Windows Seven (MSDNAA <3) </p>
У меня есть внедренная DLL, которая получает циклы, перехватывая функцию, которая вызывается тысячи раз в секунду.
Я бы хотел связать / управлять этой DLL через приложение на python. По сути, DLL выполняет свою работу, приложение python обеспечивает мозг / принятие решений.
Мой план игры для этого состоит в том, чтобы в DLL был счетчик и оператор if. Каждый раз, когда вызывается подключаемая функция, counter ++, а затем возвращаются к исходной функции, пока что-то не будет, как (counter == 250) {// dostuff (); }. Хотя, несмотря на это, это позволит целевому приложению работать в основном беспрепятственно, но все равно позволит мне делать интересные вещи.
Проблема:
Я совершенно не знаю, какой метод IPC мне следует использовать для связи. У нас есть сокеты, общая память, каналы, сопоставление файлов (?), RPC и другие (на первый взгляд) эзотерические вещи, такие как запись в буфер обмена.
Я НИКОГДА не реализовывал какой-либо IPC, кроме игрушечных примеров.
Я вполне уверен, что мне нужно что-то, что:
- Может обрабатывать разговоры между питоном и DLL
- Не блокирует / не ждет
- Может проверить ожидающие данные и продолжить, если их нет
- Если задействованы блокировки, можно продолжить вместо ожидания
- Чтение / запись тоже не требует много времени
Помощь? Спасибо за ваше время, я надеюсь, что предоставил достаточно общей информации и не нарушил никаких принятых соглашений.
Я хотел бы добавить, что окно с похожими вопросами очень круто, и я действительно просмотрел его перед публикацией.