Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 09.10.2011, 12:42   #1
Ann_Sh
Пользователь
 
Аватар для Ann_Sh
 
Регистрация: 05.11.2010
Сообщений: 25
Восклицание Создание приложений с использованием созданных Библиотек DLL.

Не могу понять, где и в чем ошибка. Не получается откомпилировать библиотеку, выдает ошибку. Объясните, пожалуйста, в чем причина


Описание создания приложения
Для реализации необходимо создать библиотеку DLL. Для этого выполните следующие действия:
1 Выполните File / New и выберите пиктограмму DLL;
2 Добавьте функции или процедуры, которые вы хотите реализовать.
3 а) функция сложения двух целых чисел AddIntegers ;
б) функция сложения двух дробных чисел AddReals;
в) функция сложения двух строк AddStrings;
г) функция DoSomeThing – присвоение начальному значению результата 1;
Текст библиотеки предоставлен в приложении.

Код:
Library SimpleDLL;
uses
 ShareMem,
  SysUtils,
  Classes;
{$R *.RES}
 var GlobalV:real;
 function AddIntegers(a,b:integer):integer;
  begin
   Result:=a+b;
  end;
 function AddReals(c,d:real):real;
  begin
   Result:=c+d;
  end;
 function AddStrings(e,f:string):string;
  begin
   Result:=e+f;
  end;
  function DoSomeThing():integer;
  begin
   Result:=1;
  end;
 exports
AddIntegers,
AddReals,
AddStrings name 'AddStringFromDLL';
 begin
 end.

Последний раз редактировалось Stilet; 09.10.2011 в 14:07.
Ann_Sh вне форума
Старый 09.10.2011, 12:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
AddStrings name 'AddStringFromDLL';
Зачем именуешь? В задании этого нет.
Цитата:
выдает ошибку
Дымными буквами на облачном фоне?
I'm learning to live...
Stilet вне форума
Старый 09.10.2011, 12:53   #3
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Если выдаёт вот это
Цитата:
[Warning] Project1.dpr(6): File not found: 'SimpleDLL.RES'
[Hint] Project1.dpr(7): Variable 'GlobalV' is declared but never used in 'SimpleDLL'
[Error] File not found: 'SimpleDLL.RES'
Сохраните вновь созданный файл как SimpleDLL.dpr
Вложения
Тип файла: zip SimpleDLL.zip (47.8 Кб, 6 просмотров)
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума
Старый 09.10.2011, 12:55   #4
Ann_Sh
Пользователь
 
Аватар для Ann_Sh
 
Регистрация: 05.11.2010
Сообщений: 25
По умолчанию

Вообще так, New/DLL...и все... компилирую..и сразу ошибка...серое окошечко с красным крестиком))) я наверное что-то не понимаю сразу изначально

JUDAS, вот я даже ваш файл открываю, компилирую..и снова это окно!))

Последний раз редактировалось Stilet; 09.10.2011 в 13:57.
Ann_Sh вне форума
Старый 09.10.2011, 12:59   #5
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Так всё правильно, DLL откомпилированная !
Теперь в папке с проектом есть SimpleDLL.dll которую Вы можете использовать в приложении ЕХЕ.
Смотрите Анюта.
Вам задали написать проект в котором приложение (ЕХЕ) используя функции библиотеки (DLL) выполняет те или иные функции. Первую часть Вы написали. Вторая часть пишется следуюшим образом.
Создаёте обычное приложение в Делфи (New-Application)
Появляется форма. Облявялете функции с Вашей DLL вот атким образом
Код:
 
 function AddIntegers(a,b:integer):integer; external 'SimpleDll.dll';
 function AddReals(c,d:real):real; external 'SimpleDll.dll';
 function AddStrings(e,f:string):string; external 'SimpleDll.dll';
Теперь, по клику кнопки или другой реакции элементов формы тупо вызываете обьявленные функции, например:
Код:
a:=AddIntegers(5,7);
Очень Важно, чтобы SimpleDll.dll была или в папке с приложением ЕХЕ или в папке Windows\System32
95% сбоев и ошибок приложений, находится в полу метрах от монитора

Последний раз редактировалось JUDAS; 09.10.2011 в 13:04.
JUDAS вне форума
Старый 09.10.2011, 13:07   #6
Ann_Sh
Пользователь
 
Аватар для Ann_Sh
 
Регистрация: 05.11.2010
Сообщений: 25
По умолчанию

Нееет...я делала всю программу, и все равно это окно.


ERROR
Cannot debug project unless a host application is defined.
Use the Run\Parameters...dialog box

JUDAS, спасибо огромное!!!!! я копирнула файл в Windows/System 32//ye и везде где надо было)))
все работает!!! Спасибо!!!!!!

Последний раз редактировалось Stilet; 09.10.2011 в 13:59.
Ann_Sh вне форума
Старый 09.10.2011, 13:23   #7
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Пожалуйста Анюта. А тепепь хотел бы поговорить с товарищами "гуру" что в этой ДЛЛ устаревшая технология, что лишнее - сказал супермод, и что не хватате для совместимости с другими технологиями Windows.
Интересно было бы послушеть мнения "папочки"
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума
Старый 09.10.2011, 14:02   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Cannot debug project unless a host application is defined.
Use the Run\Parameters...dialog box
На будущее запомни - Делфи не умеет в режиме отладки (из-под себя короче) запускать и выполнять библиотеки. Только EXE файлы.
Чтоб проверить работу DLL либо строят (как сказал Джудас) отдельные проект, с использованием в нем ДЛЛ, либо используют виндовскую rundll32 (но это альтернатива...)
Цитата:
Windows/System 32
Это было не обязательно )
Достаточно просто кинуть ее в каталог с Экзешником - эффект был бы тот же.
I'm learning to live...
Stilet вне форума
Старый 09.10.2011, 14:05   #9
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Stilet, есть ещё один вариант, который я использую - создания группы проектов (ProjectGroup) Очень єффектвиное средство отладки в 7-м Делфи и 6-м Буилдере.
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума
Старый 09.10.2011, 14:07   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
создания группы проектов
Ну я это и имел ввиду
I'm learning to live...
Stilet вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование библиотек (dll) в RAD Studio, написанных в Delphi 7 Jetro Общие вопросы Delphi 7 29.06.2011 15:30
Работа с картами ГИС. трудности с использованием библиотек Женёк123 Помощь студентам 0 05.11.2010 15:30
Создание\использование своих DLL библиотек Vol666 Общие вопросы Delphi 5 26.08.2009 11:55
Создание библиотек паролей!!! Виталий Горбунов Общие вопросы C/C++ 5 22.03.2008 20:18