ВУЗ:
Составители:
Рубрика:
12
D := CreateComObject(Class_CalcSrv) as IMyDisp;
D.Calculate;
…
В данном случае синтаксический контроль происходит на этапе компиляции, и
при этом необходима библиотека типов : на стадии компиляции по диспинтер-
фейсу отыскивается DISPID, который затем при выполнении программы пере -
дается методу Invoke. Эта последовательность действий встраивается в код
программы компилятором. Метод GetIDsOfNames здесь не используется. По
скорости выполнения данный способ, называемый ID-связыванием, уступает
раннему связыванию, но превосходит позднее связывание.
Технология доступа с помощью дуальных интерфейсов называется OLE Auto-
mation (также - Automation, автоматизация). Automation накладывает на COM-
серверы ряд дополнительных требований [2]:
1. Интерфейс, реализуемый COM-сервером, должен наследоваться от
IDispatch
2. Должны использоваться типы данных, совместимые с OLE Automation
Тип данных
OLE Automa-
tion
Тип данных
Delphi
Примечание
Boolean WordBool
Unsigned
Char
Byte
Double Double
Float Single
Int SysInt
Машинно - зависимый целый тип данных.
В настоящее время объявлен как
integer, однако в будущем может
иметь другую разрядность
Long Integer
Short SmallInt
BSTR WideString
Тип WideString требует для каждого
символа два байта . Обычные строки
Delphi в Automation использовать нельзя
Currency Currency
Date TDateTime
SafeArray PSafeArray
Массив из элементов любого поддержи-
ваемого типа
Decimal TDecimal
96 битное десятичное число
12 D := CreateComObject(Class_CalcSrv) as IMyDisp; D.Calculate; … В д анном случаеси нтакси чески й контроль прои сход и тна этапе компи ляци и , и при этом необход и ма би бли отека ти пов : на стад и и компи ляци и по д и спи нтер- фей су оты ски в аетсяDISPID, которы й з атем при в ы полнени и программы пере- д ается метод у Invoke. Э та послед ов ательность д ей ств и й в страи в ается в код программы компи лятором. М етод GetIDsOfNames з д есь не и спольз уется. По скорости в ы полнени я д анны й способ, наз ы в аемы й ID-св язы в ани е м, уступает раннему св яз ы в ани ю , но прев осход и тпоз д неесв яз ы в ани е. Т ехнологи я д оступа с помощ ью д уальны х и нтерфей сов наз ы в ается OLE Auto- mation (такж е - Automation, ав томати з аци я). Automation наклад ы в ает на COM- серв еры ряд д ополни тельны х требов ани й [2]: 1. И нтерфей с, реали з уемы й COM-сервером, д олж ен наслед ов аться от IDispatch 2. Д олж ны и спольз ов атьсяти пы д анны х, сов мести мы есOLE Automation Т и п д анны х Т и п д анны х При мечани е OLE Automa- Delphi tion Boolean WordBool Unsigned Byte Char Double Double Float Single Int SysInt М аш и нно-з ав и си мы й целы й ти п д анны х. В настоящ ее в ремя объяв лен как integer, од нако в буд ущ ем мож ет и меть д ругую раз ряд ность Long Integer Short SmallInt BSTR WideString Т и п WideString требует д ля каж д ого си мв ола д в а бай та. О бы чны е строки Delphi в Automation и спольз ов ать нельз я Currency Currency Date TDateTime SafeArray PSafeArray М асси в и з элементов лю бого под д ерж и - в аемого ти па Decimal TDecimal 96 би тноед есяти чноечи сло
Страницы
- « первая
- ‹ предыдущая
- …
- 10
- 11
- 12
- 13
- 14
- …
- следующая ›
- последняя »