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

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





випадку програму припиняє свою роботу (ніякі пастки винятків не допомагають) і, якщо воно виконується під Windows 95 або Windows 98, найчастіше потрібне перезавантаження операційної системи. Зрозуміло, що повернення покажчика стека в первинний стан повинен відбуватися після закінчення роботи методу. Але при цьому існують дві можливості - повернення покажчика на місце може робити як метод, що викликається по закінченні роботи, так і викликає метод після завершення роботи викликається методу. В принципі, в різних мовах програмування реалізуються обидві зазначені можливості - очищати стек можуть і викликаний, і викликає методи. Оскільки модуль пишеться на одній мові програмування, то ці проблеми приховані від програміста: очищення стека проводиться за специфічним для даної мови протоколу. Але якщо використовуються різні модулі, код для яких реалізований на різних мовах програмування, то виникають проблеми. Наприклад, в C + + стек очищається в методі, який викликав другий метод, після закінчення його роботи. У Delphi ж стек очищається в тому ж самому методі, де він використовується, перед закінченням його роботи. Якщо *. Exe-модуль, створений на мові C + +, викликає метод з DLL, створений на Delphi, то перед закінченням роботи методу в DLL стек буде очищений. Після цього управління передається модулю, реалізованому на C + +, який також спробує очистити стек, - така дія призведе до краху стека. p align="justify"> Крім цих можливостей, існує й інший спосіб, а саме: послідовність приміщення в стек параметрів методу. Припустимо, є метод, який використовує для роботи два параметри:


procedure DoSomething (N: integer; D: TDateTime);

Зазначений спосіб полягає в тому, що спочатку в стек може бути поміщена константа N, а потім D (зліва направо) або спочатку поміщається константа D, а потім N (справа наліво). Крім того, деякі мови програмування (зокрема, Delphi) частину параметрів методу взагалі не поміщають в стек, а передають їх через регістри процесора. До того ж у різних мовах програмування параметри можуть поміщатися в стек як зліва направо, так і справа наліво. Якщо вони були поміщені зліва направо, а метод, що викликається буде читати справа наліво, то вийде плутанина: в якості значення константи N викликається метод буде вважати значення правої половини константи D, а константу D він формуватиме з константи N і лівої половини D. p align="justify"> З цієї причини в будь-якій мові програмування передбачена можливість оголосити, який з методів - викликається чи викликає, буде очищати стек і в якій послідовності параметри методу поміщаються в стек. Таке оголошення називається угодою виклику (calling conversion). p align="justify"> Для методів, експонованих в DLL, рекомендується (але не обов'язково) використовувати те ж угоду виклику, що і в Windows API. Для 32-розрядних додатків Windows API методи реалізовані таким чином, що параметри поміщаються в стек справа наліво і стек очищає...


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





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

  • Реферат на тему: Особливості роботи в середовищі програмування Delphi
  • Реферат на тему: Графічний метод і симплекс-метод розв'язання задач лінійного програмува ...
  • Реферат на тему: Застосування графічного методу і симплекс-методу для розв'язання задач ...
  • Реферат на тему: Програмування на мові об'єктно-орієнтованого та візуального програмуван ...
  • Реферат на тему: Основи роботи зі структурами в мові програмування С ++