Другой подход (который избегает многих сложных деталей) в Windows при использовании HTTP должен использовать HTTP.SYS. Это позволяет нескольким процессам слушать различные URL на том же порте. На Сервере 2003/2008/Vista/7 это - то, как IIS работает, таким образом, можно совместно использовать порты с ним. (На XP поддерживается SP2 HTTP.SYS, но IIS5.1 не использует его.)
Другие API высокого уровня (включая WCF) используют HTTP.SYS.
Qt реализует эти вещи способом, который напоминает интерпретируемые языки. Т.е. он создает таблицы символов, которые сопоставляют имена сигналов с указателями функций, обслуживают их и ищут указатель функции по имени функции там, где это необходимо.
Каждый раз, когда вы испускаете сигнал, то есть пишете
emit something();
, вы фактически вызываете что-то ()
, которую он автоматически генерирует компилятором метаобъектов и помещает в файл * .moc
. В этой функции проверяется, к каким слотам этот сигнал подключен в данный момент, и соответствующие функции слотов (которые вы реализовали в своих собственных источниках) последовательно вызываются через таблицы символов (как описано выше). И emit
, как и другие специфичные для Qt ключевые слова, просто отбрасываются препроцессором C ++ после *. moc
. Действительно, в одном из заголовков Qt ( qobjectdefs.h ) есть такие строки:
#define slots
#define signals protected
#define emit
Функция соединения ( connect
) просто изменяет таблицы символов, поддерживаемые в * Файлы .moc
и переданные им аргументы (с макросами SIGNAL ()
и `SLOT) также предварительно обрабатываются для соответствия таблицам.
Это общая идея. В своем другом ответе ジ ョ ー ジ предоставляет нам ссылки на список рассылки trolltech и на еще один вопрос SO по этой теме.
и переданные ему аргументы (с макросами SIGNAL ()
и `SLOT) также предварительно обрабатываются для соответствия таблицам.
Это общая идея. В своем другом ответе ジ ョ ー ジ предоставляет нам ссылки на список рассылки trolltech и на еще один вопрос SO по этой теме.
и переданные ему аргументы (с макросами SIGNAL ()
и `SLOT) также предварительно обрабатываются для соответствия таблицам.
Это общая идея. В своем другом ответе ジ ョ ー ジ предоставляет нам ссылки на список рассылки trolltech и на еще один вопрос SO по этой теме.