Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простой DLL 
V
    Опции темы
Christoph
Дата 25.8.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: 5
Всего: 11



Пишу пристой длл....вот сам код программы
 
Код

procedure TForm1.Button1Click(Sender: TObject);
var
PutMessBox: procedure;
LibHandle: THandle;
begin
@PutMessBox:=nil;
LibHandle:=LoadLibrary('Prohect2.dll');
PutMessBox;
FreeLibrary(LibHandle);
end;


Сам длл
Код

library Project2;


uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

procedure PutMessBox ; stdcall ;
begin
ShowMessage('Ðàáîòàåò');
end;
exports
PutMessBox;
begin
end.


Программу не могу запустить...пишет ошибку Cannot debug project uless a host application defind 


--------------------
user posted image
PM MAIL ICQ   Вверх
THandle
Дата 25.8.2008, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Christoph, DLL'ку нельзя просто так запустить(F9). Чтобы скомпилировать жми Ctrl + F9.

PS: дубль ответа из аси.
PM   Вверх
THandle
Дата 25.8.2008, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Christoph, программа не работает, потому что ты пытаешься вызвать процедуры, чей адрес - nil, ведь его из DLL не получаешь... Вот, смотри:

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  PutMessBox: procedure;
  LibHandle: THandle;
begin
  LibHandle:=LoadLibrary('Project2.dll');
  @PutMessBox := GetProcAddress(LibHandle, 'PutMessBox');
  PutMessBox;
  FreeLibrary(LibHandle);
end;


И еще, зачем все это:

Код

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


???

Из всего этого только Dialogs нужен...

Это сообщение отредактировал(а) THandle - 25.8.2008, 21:56

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  5.rar 327,60 Kb
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0481 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.