Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 1
Всего онлайн: 1
Зарегистрировано юзеров: 6619
Комментариев на сайте: 650
Новый юзер: Dysonetn



Последние комментарии
c
dealrattKi прокомментировал "Урок 3 - Конструкция IF...THEN...ELSE":
Это действительно радует меня. --- Бесподобное сообщение скачать fifa, скачать фифа а также [url=http://15fifa.ru/novosti-fifa-15]fifa 15 последние новости[/url] скачать фифа
intatryadebra прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
Revival RO is best free ro populair ragnarok online private server founded in 2017 2018. Revival pvp big free Ragnarok server is an online exciting free MMORPG called ragnarok online, it a fun server for MMORPG gamers in ASIA. This is a top 10 ragnarok online private server thats high on the list and top ranking with massive players online. We have many players from Asia like Malaysia, Indonesia, Philippines, Thailand, Singapore, China, Hong Kong All these players are here to play free private ragnarok online server and battle players all around the world. They want to collect the best items and gear to be strongest in War of Emperium, War of Emperium are guild wars in this free RO Server. You can play this game on android phone or tablet or pc client. Enjoy And have fun. ragnarok online server http://bit.ly/2tKyawS

Урок 70 - Динамические библиотеки DLL

  Приветствую! Сейчас расскажу о библиотеках DLL и о том, как их создавать в Delphi.

  В таких языках как C++ библиотеку DLL создать и подключить довольно сложно. Для создания приходится прибегать к WinAPI, а для подключения - к классам.

В Delphi все куда легче. Создается библиотека DLL буквально двумя кликами мыши. Для этого в меню File -> New -> Other выберите DLL Wizard:



File -> New ->


  Теперь посмотрите на картинку:



Результат


  И пропишите такой код (кстати говоря, мы напишем программу, которая проверяет вымышленный пароль):

function checkPassword(password: string): string;
begin
  if password = 'admin' then
  begin
    result:= 'correct'
  end
  else
  begin
    result:= 'incorrect'
  end;
end;
exports checkPassword;

  Теперь сохраните и скомпилируйте. Вы увидите такую ошибку:



Ошибка


  Это вполне нормально. Создайте новый формовый проект и киньте на форму 1 Edit, 1 Label и 1 Button. Сохраните проект в той же папке, куда сохраняли DLL.

  Потом скопируйте нижеследующий листинг вместо всего вашего кода формовой программы:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function checkPassword(password: string): string;
external 'dll.dll';

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption:= checkPassword(Edit1.Text);
end;

end.

  Теперь объясняю:

  Здесь мы командой EXTERNAL читаем функцию checkPassword из библиотеки 'dll.dll'. Потом смотрим в Label возвращаемое этой функцией значение (correct или incorrect). Надеюсь, что здесь все понятно.



Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 29 Июля 2013
Просмотров:

Урок 69 - Реестр Windows, (часть 2/2) Урок 71 - Работа с сжатыми файлами

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.