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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2014, 23:03   #1
HTTqp
Форумчанин
 
Регистрация: 20.12.2013
Сообщений: 164
По умолчанию DLL в программе

Стал работать с DLL подключение к программе делаю так:

Код:
implementation
{$R *.dfm}
function лала-топаля;
external 'Project1.dll'; //Имя DLL библиотеки
procedure другие лалал;  
external 'Project1.dll'; //Имя DLL библиотеки
обезательно каждый раз после вызываемой процедуры или функции писать
Код:
external 'Project1.dll'; //Имя DLL библиотеки
нельзяли как нибудь указать что это все из одной DLL вызывается? Вопрос чисто на ознакомление.

Заранее благодярю за ответ.
HTTqp вне форума Ответить с цитированием
Старый 20.03.2014, 23:13   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

конечно всегда, а как понять откуда она?

но это раннее связывание, есть еще позднее, там надо руками все, грузить вызывать и т.д...
eval вне форума Ответить с цитированием
Старый 20.03.2014, 23:16   #3
HTTqp
Форумчанин
 
Регистрация: 20.12.2013
Сообщений: 164
По умолчанию

Не я понял что обязательно нужно указавать external 'Project1.dll', чтобы программа знала откуда брать данную процедуру или функцию. Я просто имел в виду можно ли например написать например как то так
Код:
implementation
{$R *.dfm}
function лала-топаля;
procedure другие лалал;  
external 'Project1.dll'; //Имя DLL библиотеки
можно ли написаит external 'Project1.dll'; один раз и программа поняла что все это находится в одной dll, попробывал у меня выдало ошибку, может прото не правильно написал)))
HTTqp вне форума Ответить с цитированием
Старый 20.03.2014, 23:21   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,881
По умолчанию

Цитата:
Сообщение от HTTqp Посмотреть сообщение
можно ли написаит external 'Project1.dll'; один раз и программа поняла что все это находится в одной dll, попробывал у меня выдало ошибку, может прото не правильно написал)))
Нет нельзя. Объявления такого рода могут располагаться очень путано. Да и в несколько разных местах модуля. Так что каждую функцию нужно описать полностью, включая и имя библиотеки.
northener вне форума Ответить с цитированием
Старый 20.03.2014, 23:22   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а как понять function лала-топаля; она местная или нет?
конечно можно было бы так сделать, но сделано так как сделано
eval вне форума Ответить с цитированием
Старый 20.03.2014, 23:30   #6
HTTqp
Форумчанин
 
Регистрация: 20.12.2013
Сообщений: 164
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
а как понять function лала-топаля; она местная или нет?
конечно можно было бы так сделать, но сделано так как сделано
function лала-топаля;
procedure другие лалал;
это 2 действия находятся в DLL, я просто подумал что эти два дейстия работают у меня не постоянно, а значит и подключать их в основную программу не обязательно дабы не жрать лишей RAM.

Или с этим можно поспорить, я готов выслушать мнения знающи людей по поводу стоит ли использовать DLL или лучше все писать в одной программе? Можно выслушать и подискутировать, если люди не против) В любом случаи инфа будет полезна. Например я только начал работать с DLL и поэтому мне кажется можно размещать некоторые действия в DLL, только не знаю как определить что лучше засунуть действие в DLL или же в программе написать без использования лишних DLL.

Последний раз редактировалось HTTqp; 20.03.2014 в 23:34.
HTTqp вне форума Ответить с цитированием
Старый 20.03.2014, 23:33   #7
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
function лала-топаля;
procedure другие лалал;
это 2 действия находятся в DLL
откуда видно?

я сделаю так

function лала-топаля;
procedure другие лалал; external 'Project1.dll';
implementation
function лала-топаля;
begin

end;

и?
eval вне форума Ответить с цитированием
Старый 20.03.2014, 23:39   #8
HTTqp
Форумчанин
 
Регистрация: 20.12.2013
Сообщений: 164
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
откуда видно?

я сделаю так

function лала-топаля;
procedure другие лалал; external 'Project1.dll';
implementation
function лала-топаля;
begin

end;

и?
ну можно и так конечно же)
А ответь те тогда если не сложно, как определить стоит ли создавать DLL или можно и без него, или это все на усмотрение программиста остается?
HTTqp вне форума Ответить с цитированием
Старый 21.03.2014, 02:31   #9
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,881
По умолчанию

Цитата:
Сообщение от HTTqp Посмотреть сообщение
А ответь те тогда если не сложно, как определить стоит ли создавать DLL или можно и без него, или это все на усмотрение программиста остается?
В первую очередь идеология динамических библиотек создавалась для того, чтобы несколько приложений могли использовать один и тот же код, не включая его в свои исходники. И в свой ЕХЕ-файл.
northener вне форума Ответить с цитированием
Старый 21.03.2014, 03:04   #10
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,580
По умолчанию

Можно константу объявить:
Код:
implementation
{$R *.dfm}
const mydll='Project1.dll';
function лала-топаля;
external mydll;
procedure другие лалал;  
external mydll;
Arigato вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инструкция для сборки приложений на Qt в один exe без зависимостей от libstdc++-6.dll, libgcc_s_dw2-1.dll, Qt5Core.dll и т.д. 8Observer8 Qt и кроссплатформенное программирование С/С++ 12 25.06.2015 03:18
Как использовать в Delphi-программе функции из DLL, написанной на C# АТИКОН Общие вопросы Delphi 12 19.03.2013 08:28
C# & DLL: как указать, что загружать DLL нужно из ЗАДАННОЙ папки "D:\My\Path\a.dll" ? AntyDES C# (си шарп) 11 10.10.2012 20:00
Debugger Kernel BORDBK160.DLL or BORDBK160N.DLL is missing or not registered. Человек_Борща Общие вопросы Delphi 0 15.07.2012 14:01
Подключение DLL к программе Mixim Общие вопросы C/C++ 3 30.04.2010 15:28