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

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 3
Всего онлайн: 3
Зарегистрировано юзеров: 7024
Комментариев на сайте: 656
Новый юзер: Alvinbag



Последние комментарии
c
Paulineodods прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
Всем добрый день Заказывала вот такую модель смартфона на сайте https://sale-aliexpress.ru . Продавец проявил инициативу и сам отправил с помощью DHL потом еще у DHL какой то сбой прошел . так продавец еще интересовался отписывался получила я или нет. В придачу положил рыбку для наушников (чтобы провода не запутывались))) и стилус. Короче мне повезло с продавцом и покупкой. Очень [url=https://sale-aliexpress.ru] рекомендую данный сайт .
YuristFom прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
[b]ЮристЪ онлайн.[/b] Наша юридическая компания [b]"ЮристЪ"[/b] профессионально занимается разрешением всех юридических вопросов на протяжении многих лет. Отличное знание российского законодательства и широкая юридическая практика позволяют нашим юристам и адвокатам добиться положительного разрешения дела даже в самых сложных случаях. Наш сайт: http://jurs.info/g/ Юридическая консультация 24 на 7 ежедневно. Телефон указан на сайте. [url=jurs.info/g]Получить юридическую консультацию прямо сейчас![/url]

Урок 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 - Работа с сжатыми файлами

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