Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как подключить 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?


Наверх

Титульная страница Поиск, карта сайта Написать письмо