Пишемо dll на delphi

Персональна сторінка shra, блог фріленсерів, веб-розробника на PHP. Тут я ділюся своїм досвідом і думками, проводжу досліди над людьми, збираю нематеріальні свідоцтва власної дурості. Використовуючи приклади програмного коду з даного сайту, ви приймаєте всю відповідальність за можливі наслідки їх використання, включаючи ваше психічне здоров'я і інтереси третіх осіб.

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

Для початку потрібно вибрати правильний тип проекту.

Йдемо в меню File -> New -> Other.

Пишемо dll на delphi

Як бачите в даному прикладі - це delphi-сімка. Вибираємо новий «DLL Wizard» і тиснемо ОК.

first unit in your library 's USES clause AND your project' s (select

Project - View Source) USES clause if your DLL exports any procedures or

functions that pass strings as parameters or function results. This

applies to all strings passed to and from your DLL - even those that

are nested in records and classes. ShareMem is the interface unit to

the BORLNDMM. DLL shared memory manager. which must be deployed along

with your DLL. To avoid using BORLNDMM. DLL. pass string information

using PChar or ShortString parameters.>

У шаблоні даються деякі поради, пов'язані з використанням паскалевская типів даних. Зокрема важливе зауваження - «Щоб уникнути використання BORLNDMN.DLL, використовуйте рядкові параметри виклику тільки типу PChar або ShortString.» Інакше, використовувати вашу DLL де то на іншому комп'ютері, де немає бібліотеки BORLNDMN.DLL, буде не можна.

У наступному прикладі ми оголошуємо в бібліотеці дві функції, одна з них буде доступна зовнішнім додаткам (power3), а інша - ні.

// тут можна вставити секцію uses,

// але для мого прикладу що або підключати не потрібно

// це ваші функції

// їх потрібно оголосити після $ R * .res

function power2 (x. real). real; stdcall;

function power3 (x. real). real; stdcall;

power3. = Power2 (x) * x;

// тут ви можете вказати, які з ваших функцій

// буде видно для зовнішнього виклику з DLL

// тут пишеться код, який виконується при ініціалізації DLL

Як тільки ви откомпіліруете код і запустіть билдер (меню Project -> Build), в папці з'явиться файл з розширенням * .DLL.

Це не складний процес, як завжди лежить в області know-how. Пропоную використовувати ось таку зв'язку функцій. [Crayon-59e1c4cea60a4824505732 /] Ця функція визначає активне вікно і потім, по ID його процесу, отримує код розкладки. Для російськомовної.

Щороку, зазвичай навесні, просять у мене вихідні по завданню комівояжер. А я їх давно сам не бачив, що називається, і ніби як відморожуватися, кажу - куди подів, не знаю. Але тут розгортав проекти по роботі і наткнувся на обрані архіви дельфийских.

Схожі статті