Newsgroup: it.comp.lang.delphi
Titolo: Usare componenti in DLL

Ciao
volevo sapere se in delphi 7 è possibile (e se si, come?) utilizzare un 
componente (non visuale e installato come .dpk)
in una dll.
Vorrei creare una dll da usare in visual basic( VS 2005).
IL fatto è che questo componente non visuale ha una infinità di funzioni 
molto complesse e vorrei sfruttarle senza doverle tradurre in visual basic.
Il componente in questione utilizza diverse unit.
Grazie, Giò. 

 in una dll.
Sì. E' sufficiente creare una DLL e inserire al suo interno le funzioni 
desiderate, creando dinamicamente un'istanza del componente in esame per 
poterne invocare i metodi, dopo aver aggiunto il nome della unit in cui 
è definito nella clausola *uses* della unit, o delle unit, che 
contengono le funzioni da esportare successivamente con *exports*, nel 
programma principale.
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

grazie per la risposta
ho provato a fare come dici tu e ho scritto il seguente codice
library Project1;
uses
  SysUtils,
  Classes,
  Unit1 in 'D:\Prova',
  Unit2 in 'D:\Prova';
Type
  Classe1=class (TClasse_unit1);
  Classe2= class (TClasse_unit2);
Procedure conversione (var a,b,c : real); stdcall;
var
  c1:classe1;
  c2: classe2;
begin
   c1:=classe1.create(nil)
   c1.converti(a,b,c);
end;
  exports
  conversione;
end.
Nel programma utilizzo
function conversione (var a,b,c: double); stdcall; external 'project1.dll';
Mi da l'errore  class EConvertError with message ""
col create uso nil perchè è l'unico che mi accetta... Lo so, sto andando per 
tentativi ma sono alle primissime armi
e il manuale che ho non spiega un granchè.
Tenendo presente che il metodo converti di C1 chiama metodi di c2, devo 
aggiungere anche
c2:=classe2.create(nil) ?
Grazie, Giò.

 ho provato a fare come dici tu e ho scritto il seguente codice [...]
Il tuo codice non sembra essere compilabile, quindi quello verace è 
senz'altro differente.
Non posso fare valutazioni su codice inesatto perché potrei segnalarti 
errori di "copia e incolla" al posto di errori effettivi.
Dovresti cercare di dettagliare meglio la situazione.
All'occorrenza, sposta le tue funzioni in una unit esterna ed 
eventualmente includila in un'applicazione Windows classica dove 
richiami tali funzioni, così puoi facilmente collaudarle.


cacchiarola avevi ragione. sei un MAGO
Ho provato e la dll funziona. In delphi ovviamente.
Ora visual studio 2005 o meglio visual basic non la accetta.
Io faccio add reference, seleziono la mia project1.dll e mi dice non può 
fare riferimento
"Please make sure that the file is accessible, and that is a valid assembly 
or COM component"
Ho provato con successo a usare dll con visual basic.
Evidentemente devono essere scritte con specifiche che non conosco.
Hai suggerimenti (o Link) a riguardo.
Secondo te la dll può essere usata per apllicazioni windows mobile?
Grazie infinite !!! Dopo di queso spero di non assillarti più.

 Secondo te la dll può essere usata per apllicazioni windows mobile?
Non direi, poiché è legata all'architettura x86 (presumo sia questa) per 
la quale è stata compilata.


Ok, capito tutto.
Devo studiare molto.
Grazie per la disponibilità, Giò. 

Giusto per concludere...
ho usato per prova la dll CFSerialClass che in visual studio 2003 permetteva 
l'utilizzo di una porta seriale su pocketpc.
Da qui pensavo che le dll fossero più usabili....
Evidentemente la suddetta dll è stata scritta con tutti i sacrri crismi 
(com. activex)
Giò.