Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Розробка програми для автоматизації роботи кардіоцентру

Реферат Розробка програми для автоматизації роботи кардіоцентру





отрапляє в додаток і після показу користувачеві повідомлення додаток спробує його зруйнувати. В результаті знову відбудеться виняток. Тому всі експоновані в DLL методи, в яких можуть відбутися виключення, повинні мати пастку винятки:

Типовий обмін текстовою інформацією з DLL виглядає наступним чином. Якщо необхідно передати небудь рядок в метод DLL, то можна просто використовувати в методі покажчик на рядок:

procedure SendString (P: pchar); stdcall; external 'FirstLib.dll' name 'SendString';

TForm1.Button5Click (Sender: TObject);: string;: = 'This test string will be sended to DLL'; (pchar (S));;


Метод SendString в DLL реалізований таким чином:

SendString (P: pchar); stdcall; export;: string;: = StrPas (P);

ShowMessage (S);;


При запуску даного прикладу з'явиться повідомлення, яке показує вміст рядка, створеної в *. exe-модулі. Для того щоб отримати текстову інформацію з DLL, у додатку зазвичай створюється буфер, який заповнюється в DLL. Природно, розмір буфера повинен бути достатнім для зберігання всієї текстової інформації. Щоб убезпечити буфер від переповнення, разом з буфером як параметр найчастіше надсилається його розмір. br/>

Виклик методів додатки в DLL


Раніше ми розглядали тільки такі варіанти, коли методи DLL викликаються з програми. Але часто потрібно, щоб DLL викликала методи додатки, наприклад для нотифікаційні повідомлень. p align="justify"> Якщо необхідно викликати з програми метод, який при цьому не є методом класу, то досить передати покажчик на метод в DLL:


var: integer = 0;

CalculateSum (ReturnCallback: pointer): integer; stdcall; 'FirstLib.dll' name 'Sum';

GetNextValue: integer; stdcall; NSum <200 then begin (NSum);: = NSum; else Result: = -1;;

TForm1.Button9Click (Sender: TObject);: = IntToStr (CalculateSum (@ GetNextValue));

end;


У додатку створюється метод (не метод класу!), адреса якого передається в DLL. Для того щоб цей метод можна було викликати з DLL, створених на інших мовах програмування, бажано використовувати угоду stdcall виклику при реалізації зазначених методів (так звані callback-методи). Використання виклику методу в DLL можна проілюструвати на такому прикладі:


type = function: integer; stdcall;

CalculateSum (ReturnCallback: pointer): integer; stdcall; export;: integer;: TReturnNextMethod;: = 0; ReturnCallback = nil then Exit;: = 0;: = TReturnNextMethod (ReturnCallback); N> = 0 do begin: = ReturnNext; N> = 0 then Result: = Result + N;

end;;


При необхідно...


Назад | сторінка 7 з 12 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка програми, що реалізує алгоритм, який використовує z-буфер
  • Реферат на тему: Метод Вінера-Хопфа і його додатки у фізичних завданнях
  • Реферат на тему: Методи кластерізації: процедура Мак-кіна, метод К-методів, сітчасті методи
  • Реферат на тему: Порівняння методів одновимірної оптимізації: метод золотого перетину і мето ...
  • Реферат на тему: Системний аналіз гарантій і компенсацій для працівників, надання яких необх ...