ВУЗ:
Составители:
4.2. ɗɤɫɩɨɪɬ ɨɩɢɫɚɧɢɹ ɢɧɬɟɪɮɟɣɫɨɜ ɢɡ ɛɢɛɥɢɨɬɟɤɢ ɬɢɩɨɜ
COM-ɫɟɪɜɟɪɚ
ȼ ɬɪɟɬɶɟɣ ɝɥɚɜɟ ɪɚɡɨɛɪɚɧɨ ɩɪɢɦɟɧɟɧɢɟ ɛɢɛɥɢɨɬɟɤɢ ɬɢɩɨɜ ɜ COM-
ɫɟɪɜɟɪɚɯ. Ȼɢɛɥɢɨɬɟɤɚ ɬɢɩɨɜ ɯɪɚɧɢɬɫɹ ɜ COM-ɫɟɪɜɟɪɟ ɜ ɜɢɞɟ ɪɟɫɭɪɫɚ, ɢ
ɞɨɫɬɭɩ ɤ ɟɟ ɞɚɧɧɵɦ ɦɨɠɧɨ ɩɨɥɭɱɢɬɶ ɫ ɩɨɦɨɳɶɸ ɫɬɚɧɞɚɪɬɧɵɯ ɫɪɟɞɫɬɜ
WinAPI (ɩɨɞɪɨɛɧɟɟ ɫɦ. [7 ɝɥ. 3]). Ɍɚɤɠɟ ɜ Delphi ɩɪɟɞɭɫɦɨɬɪɟɧɨ ɞɪɭɝɨɟ
ɫɬɚɧɞɚɪɬɧɨɟ ɫɪɟɞɫɬɜɨ ɞɥɹ ɝɟɧɟɪɚɰɢɢ ɩɪɨɝɪɚɦɦɧɨɝɨ ɤɨɞɚ ɧɚ ɹɡɵɤɟ Object
Pascal, ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɝɨ ɨɩɢɫɚɧɢɸ ɛɢɛɥɢɨɬɟɤɢ ɬɢɩɨɜ. Ⱦɥɹ ɷɬɨɝɨ ɧɭɠɧɨ
ɨɬɤɪɵɬɶ ɞɢɚɥɨɝɨɜɨɟ ɨɤɧɨ Import Type Library (ɪɢɫ. 4.1), ɜɵɛɪɚɜ ɜ ɝɥɚɜɧɨɦ
ɦɟɧɸ ɷɥɟɦɟɧɬ Project/Import Type Library….
Ɋɢɫ. 4.1. Ⱦɢɚɥɨɝɨɜɨɟ ɨɤɧɨ Import Type Library
39
ȼɜɟɪɯɭ ɷɬɨɝɨ ɞɢɚɥɨɝɨɜɨɝɨ ɨɤɧɚ ɧɚɯɨɞɢɬɫɹ ɫɩɢɫɨɤ ɫɭɳɟɫɬɜɭɸɳɢɯ
COM-ɫɟɪɜɟɪɨɜ. Ⱦɨɛɚɜɢɬɶ ɧɨɜɵɣ COM-ɫɟɪɜɟɪ ɜ ɷɬɨɬ ɫɩɢɫɨɤ ɦɨɠɧɨ ɫ ɩɨ-
ɦɨɳɶɸ ɤɧɨɩɤɢ Add…, ɭɞɚɥɢɬɶ – Remove. Ⱦɚɧɧɵɟ ɤɧɨɩɤɢ ɚɧɚɥɨɝɢɱɧɵ
ɤɨɦɚɧɞɚɦ ɪɟɝɢɫɬɪɚɰɢɢ ɢ ɭɞɚɥɟɧɢɹ COM-ɫɟɪɜɟɪɨɜ ɜ ɫɢɫɬɟɦɟ.
ɇɢɠɟ ɫɩɢɫɤɚ COM-ɫɟɪɜɟɪɨɜ ɧɚɯɨɞɢɬɫɹ ɫɩɢɫɨɤ ɤɨɦɩɨɧɟɧɬɨɜ ɜ ɜɵ-
ɛɪɚɧɧɨɦ ɫɟɪɜɟɪɟ, ɚ ɬɚɤɠɟ ɫɬɪɨɤɚ ɫ ɜɵɛɨɪɨɦ ɞɢɪɟɤɬɨɪɢɢ, ɜ ɤɨɬɨɪɨɣ ɛɭɞɟɬ
ɫɨɯɪɚɧɟɧ ɷɤɫɩɨɪɬɢɪɭɟɦɵɣ ɦɨɞɭɥɶ.
ɑɬɨɛɵ ɩɨɥɭɱɢɬɶ ɩɪɨɝɪɚɦɦɧɵɣ ɤɨɞ, ɚɧɚɥɨɝɢɱɧɵɣ ɨɩɢɫɚɧɢɸ ɛɢɛɥɢɨ-
ɬɟɤɢ ɬɢɩɨɜ, ɧɭɠɧɨ ɧɚɠɚɬɶ ɧɚ ɤɧɨɩɤɭ Create Unit.
Ʉɧɨɩɤɚ Install… ɚɜɬɨɦɚɬɢɱɟɫɤɢ ɝɟɧɟɪɢɪɭɟɬ ɩɪɨɝɪɚɦɦɧɵɣ ɤɨɞ ɤɨɦɩɨ-
ɧɟɧɬɚ Delphi, ɜ ɤɨɬɨɪɨɦ ɪɟɚɥɢɡɨɜɚɧɵ ɜɫɟ ɫɜɨɣɫɬɜɚ ɢ ɦɟɬɨɞɵ ɜɵɛɪɚɧɧɨɝɨ ɜ
ɫɩɢɫɤɟ ɤɨɦɩɨɧɟɧɬɚ. ɉɨɥɭɱɟɧɧɵɣ ɤɨɦɩɨɧɟɧɬ ɭɫɬɚɧɚɜɥɢɜɚɟɬɫɹ ɧɚ ɡɚɤɥɚɞɤɟ
Server. Ɋɚɛɨɬɚ ɫ ɬɚɤɢɦɢ ɤɨɦɩɨɧɟɧɬɚɦɢ ɬɪɢɜɢɚɥɶɧɚ ɢ ɚɧɚɥɨɝɢɱɧɚ, ɤɚɤ ɢ ɫɨ
ɜɫɟɦɢ ɫɬɚɧɞɚɪɬɧɵɦɢ ɤɨɦɩɨɧɟɧɬɚɦɢ Delphi, ɩɨɷɬɨɦɭ ɞɚɧɧɵɣ ɦɟɬɨɞ ɪɚɫ-
ɫɦɚɬɪɢɜɚɬɶɫɹ ɧɟ ɛɭɞɟɬ.
4.3. Ɉɫɨɛɟɧɧɨɫɬɢ ɬɟɯɧɢɤɢ ɢɫɩɨɥɶɡɨɜɚɧɢɹ
ɤɨɦɩɨɧɟɧɬɨɜ ɜ Delphi
Delphi ɹɜɥɹɟɬɫɹ ɬɚɤɨɣ ɫɪɟɞɨɣ ɪɚɡɪɚɛɨɬɤɢ ɩɪɨɝɪɚɦɦ, ɜ ɤɨɬɨɪɨɣ ɨɱɟɧɶ
ɦɧɨɝɨɟ ɚɜɬɨɦɚɬɢɡɢɪɨɜɚɧɨ ɢ ɭɩɪɨɳɟɧɨ. ɇɟ ɢɫɤɥɸɱɟɧɢɟɦ ɹɜɥɹɟɬɫɹ ɢ COM-
ɬɟɯɧɨɥɨɝɢɹ. ȼ Delphi ɪɚɡɪɚɛɨɬɚɧɵ ɤɥɚɫɫɵ, ɤɨɬɨɪɵɟ ɫɭɳɟɫɬɜɟɧɧɨ ɨɛɥɟɝ-
ɱɚɸɬ ɪɟɚɥɢɡɚɰɢɸ ɪɚɡɥɢɱɧɵɯ ɡɚɞɚɱ ɬɟɯɧɨɥɨɝɢɢ COM:
Ȼɚɡɨɜɵɣ ɤɥɚɫɫ
ɤɨɦɩɨɧɟɧɬɚ
ɂɫɩɨɥɶɡɭɟɬɫɹ ɞɥɹ
ɩɪɨɟɤɬɢɪɨɜɚɧɢɹ …
Ƚɟɧɟɪɚɬɨɪ ɤɨɦɩɨɧɟɧɬɨɜ
TAutoObject TAutoObjectFactory
ɤɨɦɩɨɧɟɧɬɨɜ
ɚɜɬɨɦɚɬɢɡɚɰɢɢ (ɝɥ. V)
TComObject TComObjectFactory ɩɪɨɫɬɵɯ ɤɨɦɩɨɧɟɧɬɨɜ
TTypedComObject TTypedComObjectFactory
ɤɨɦɩɨɧɟɧɬɨɜ ɫ ɝɟɧɟɪɚ-
ɰɢɟɣ ɛɢɛɥɢɨɬɟɤɢ ɬɢ-
ɩɨɜ
ȿɳɟ ɨɞɧɨɣ ɜɚɠɧɨɣ ɨɫɨɛɟɧɧɨɫɬɶɸ ɪɚɡɪɚɛɨɬɤɢ COM-ɩɪɢɥɨɠɟɧɢɣ ɹɜ-
ɥɹɟɬɫɹ ɬɨ, ɱɬɨ ɧɟɬ ɧɟɨɛɯɨɞɢɦɨɫɬɢ ɩɨɞɫɱɢɬɵɜɚɬɶ ɫɫɵɥɤɢ, ɬɨ ɟɫɬɶ ɢɫɩɨɥɶ-
ɡɨɜɚɬɶ ɦɟɬɨɞɵ _AddRef ɢ _Release, ɬɚɤ ɤɚɤ ɫɢɫɬɟɦɚ ɫɚɦɚ ɚɜɬɨɦɚɬɢɱɟɫɤɢ
ɭɜɟɥɢɱɢɬ ɫɱɟɬɱɢɤ, ɤɨɝɞɚ ɫɫɵɥɤɚ ɛɭɞɟɬ ɩɪɢɫɜɨɟɧɚ, ɢ ɭɦɟɧɶɲɢɬ, ɤɨɝɞɚ ɩɟ-
ɪɟɦɟɧɧɨɣ ɛɭɞɟɬ ɩɪɢɫɜɨɟɧɨ ɡɧɚɱɟɧɢɟ nil. Ʉɨɝɞɚ ɫɱɟɬɱɢɤ ɫɫɵɥɨɤ ɛɭɞɟɬ ɪɚ-
ɜɟɧ ɧɭɥɸ, ɨɛɴɟɤɬ ɛɭɞɟɬ ɭɧɢɱɬɨɠɟɧ:
V:=CreateComObject(GUID); //ɫɱɟɬɱɢɤ ɫɫɵɥɨɤ ɭɜɟɥɢɱɢɥɫɹ ɢ ɪɚɜɟɧ 1
40
4.2. ������� �������� ����������� �� ���������� ����� ������ ����� ����������� ���� ��������� ������ ������������ COM-������� COM-��������. �������� ����� COM-������ � ���� ������ ����� � ��- ����� ������ Add…, ������� – Remove. ������ ������ ���������� � ������� ����� ��������� ���������� ���������� ����� � COM- �������� ����������� � �������� COM-�������� � �������. ��������. ���������� ����� �������� � COM-������� � ���� �������, � ���� ������ COM-�������� ��������� ������ ����������� � ��- ������ � �� ������ ����� �������� � ������� ����������� ������� ������� �������, � ����� ������ � ������� ����������, � ������� ����� WinAPI (��������� ��. [7 ��. 3]). ����� � Delphi ������������� ������ �������� �������������� ������. ����������� �������� ��� ��������� ������������ ���� �� ����� Object ����� �������� ����������� ���, ����������� �������� ������- Pascal, ���������������� �������� ���������� �����. ��� ����� ����� ���� �����, ����� ������ �� ������ Create Unit. ������� ���������� ���� Import Type Library (���. 4.1), ������ � ������� ������ Install… ������������� ���������� ����������� ��� �����- ���� ������� Project/Import Type Library…. ����� Delphi, � ������� ����������� ��� �������� � ������ ���������� � ������ ����������. ���������� ��������� ��������������� �� �������� Server. ������ � ������ ������������ ���������� � ����������, ��� � �� ����� ������������ ������������ Delphi, ������� ������ ����� ���- ������������ �� �����. 4.3. ����������� ������� ������������� ����������� � Delphi Delphi �������� ����� ������ ���������� ��������, � ������� ����� ������ ���������������� � ��������. �� ����������� �������� � COM- ����������. � Delphi ����������� ������, ������� ����������� �����- ���� ���������� ��������� ����� ���������� COM: ������� ����� ������������ ��� ��������� ����������� ���������� �������������� … ����������� TAutoObject TAutoObjectFactory ������������� (��. V) TComObject TComObjectFactory ������� ����������� ����������� � ������- TTypedComObject TTypedComObjectFactory ���� ���������� ��- ��� ��� ����� ������ ������������ ���������� COM-���������� ��- ������ ��, ��� ��� ������������� ������������ ������, �� ���� ������- ������ ������ _AddRef � _Release, ��� ��� ������� ���� ������������� �������� �������, ����� ������ ����� ���������, � ��������, ����� ��- �������� ����� ��������� �������� nil. ����� ������� ������ ����� ��- ��� ����, ������ ����� ���������: ���. 4.1. ���������� ���� Import Type Library V:=CreateComObject(GUID); //������� ������ ���������� � ����� 1 39 40
Страницы
- « первая
- ‹ предыдущая
- …
- 18
- 19
- 20
- 21
- 22
- …
- следующая ›
- последняя »