![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как подключить dll?
syte_ser78 © (2005-10-31 11:12:00)В Project manager - 2 проекта. Один - основной и второй dll к нему.
как подключить к первому проекту эту длл?
stone (2005-10-31 12:45:00) [1]Ты оба проетка билди в одну папку (см. [9])
Crazy_Diman (2005-10-31 12:43:00) [2]stone © (31.10.05 12:35) [8]
брр
Может я многого хочу, но вобщем хочу вот что.
Два октрытых в прожект менеджере проекта.
Один - мой проект и второй - моя дллка.
Пр булд ол все это переделывается и мой проект использует дллку с папки втоорого проекта. Если же дллка есть в папке проекта (тоесть готового к употреблению экзешнкиа) то используется она.
я тебя не понел опесни нормально
syte_ser78 (2005-10-31 12:38:00) [3]stone © (31.10.05 12:35) [8]
брр
Может я многого хочу, но вобщем хочу вот что.
Два октрытых в прожект менеджере проекта.
Один - мой проект и второй - моя дллка.
Пр булд ол все это переделывается и мой проект использует дллку с папки втоорого проекта. Если же дллка есть в папке проекта (тоесть готового к употреблению экзешнкиа) то используется она.
Crazy_Diman (2005-10-31 12:37:00) [4]> syte_ser78 © (31.10.05 12:31) [7]
> а как указать в настройках преокта указать где эта дллка
> лежит?
> Если в той же папке, где и ехе-шник, то ничего указывать не надо
Он незнает где dll сохранилась
Crazy_Diman (2005-10-31 12:36:00) [5]project->Options->directories ну что тотакое -> Output derectory и указывай куда сохранять
stone (2005-10-31 12:35:00) [6]
> syte_ser78 © (31.10.05 12:31) [7]
> а как указать в настройках преокта указать где эта дллка
> лежит?
Если в той же папке, где и ехе-шник, то ничего указывать не надо
syte_ser78 (2005-10-31 12:31:00) [7]а как указать в настройках преокта указать где эта дллка лежит?
Crazy_Diman (2005-10-31 12:11:00) [8]type
TTEst = function ( Test : Sting): string;
var
hndDLLHandle: THandle;
test: TTEst;
try
// загружаем dll динамически
hndDLLHandle := loadLibrary ( test.dll' );
if hndDLLHandle <> 0 then begin
// получаем адрес функции
@calc_double := getProcAddress ( hndDLLHandle,'TestDLL');
// если адрес функции найден
if addr ( calc_double ) <> nil then begin
// здесь выполняеш код
end else
showMessage ( 'Функция не существует...' );
end else
// DLL не найдена
showMessage ( 'DLL, не найдина...' );
finally
freeLibrary ( hndDLLHandle );
end;
end;
Tonich (2005-10-31 12:08:00) [9]поподробнее...хмм в нете правдо куча примеров по этому делу
вообщем
объявляеш процедуру(функцию) в своем приложени, с теми же параметрами как и у экспортируемой процедыры(функции) затем
procedure Proc(....); external 'тут указываешь имя библиотеки';
ну и можно еще дописать сошлашение о вызове, то которое использовано при экспорте из dll-ки
да!! если ты эту процедуру(функцию) экспортируешь не по индексу и не по имени то имя процедуры в хосте должно совпадать с именем процедуры(функции) в Dll
примеров по этому делу завались...!
Crazy_Diman (2005-10-31 12:05:00) [10]Procedure TestDLL (Test : Sting); Stdcall; External 'Test.dll';
syte_ser78 (2005-10-31 12:01:00) [11]Tonich © (31.10.05 11:56) [2]
Можно поподробнее о первом способе?
Tonich (2005-10-31 11:56:00) [12]можно и статически это сделать (легче если вообще в первый раз это делать), но динамически конечно же лучше )
stone (2005-10-31 11:20:00) [13]LoadLibrary?