IPC между приложением Python и введенным DLL

Привет переполнение стека: Иногда читатель, в первый раз плакат.

Фон:

Поле Windows рабочий XP SP3, скоро чтобы быть обновленным до Windows Seven (MSDNAA <3)

У меня есть введенный DLL, который получает циклы путем сцепления функции, которая вызвана тысячи времен в секунду.

Я хотел бы связываться/управлять этот DLL с помощью приложения Python. В основном DLL делает работу, приложение Python предоставляет мозги/принятие решений.

Моя стратегия для того, чтобы сделать это, у меня был бы счетчик и если оператор в DLL. Каждый раз крючковатая функция вызвана, счетчик ++, и затем перейдите назад к исходной функции до чего-то как если (противостоят == 250) {//dostuff ();}. Мой, хотя позади этого это позволит целевому приложению работать главным образом беспрепятственный, но все еще позволит мне сделать интересные вещи.

Проблема:

Я в чрезвычайной потере, на котором методе IPC я должен использовать, чтобы сделать коммуникацию. У нас есть сокеты, общая память, каналы, filemapping(?), RPC и другой (на вид) тайный материал как запись в буфер обмена.

Я никогда не реализовывал вида IPC вне игрушечных примеров.

Я абсолютно уверен, что мне нужно что-то что:

  • Может обработать разговор назад и вперед между Python и DLL
  • Не блокирует/ожидает
  • Может проверить на данные ожидания и продолжиться, если нет никого
  • Если блокировки включены, может продолжиться вместо ожидания
  • Не стоит большого количества времени к чтению-записи также

Помощь? Спасибо за Ваше время, я надеюсь, что предоставил достаточно общей информации и не повредил любые принятые конвенции.

Я хотел бы добавить, что связанное поле вопросов очень прохладно, и я действительно просматривал его перед регистрацией.

5
задан Horace Blegg 12 January 2010 в 14:08
поделиться