Ciao a tutti
Ragazzi come si crea una .dll?
Dovrei metterci delle funzioni che utilizzo spesso, potrei anche inserirle in un modulo .vb ma preferirei metterle dentro una .dll in modo tale da richiamarle anche da altri linguaggi.
Grazie mille![]()
Ciao a tutti
Ragazzi come si crea una .dll?
Dovrei metterci delle funzioni che utilizzo spesso, potrei anche inserirle in un modulo .vb ma preferirei metterle dentro una .dll in modo tale da richiamarle anche da altri linguaggi.
Grazie mille![]()
Software gratuito per gestire le tue newsletter: Mercurio
Crea un progetto Class Library.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Originariamente inviato da alka
Crea un progetto Class Library.
Okkk trovata...
Ma crea una dll a tutti gli effetti? Può essere utilizzata anche da altri linguaggi?
Software gratuito per gestire le tue newsletter: Mercurio
Altri linguaggi .NET, o che possono importare tali classi.Originariamente inviato da [D]ottor
Ma crea una dll a tutti gli effetti? Può essere utilizzata anche da altri linguaggi?
Non si creano comunque librerie native.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Originariamente inviato da alka
Altri linguaggi .NET, o che possono importare tali classi.
Non si creano comunque librerie native.
Azzz..
Invece si possono importare librerie native nei progetti?
Magari la creo con il C++
Software gratuito per gestire le tue newsletter: Mercurio
Certo, usando Declare o DllImport.
Amaro C++, il gusto pieno dell'undefined behavior.
Ma non devo aggiungere un riferimento?Originariamente inviato da MItaly
Certo, usando Declare o DllImport.
Qual'è la procedura per aggiungere una .dll nativa al progetto?
e come faccio ad utilizzarla
Declare Pippo.dll
Poi
Pippo.funzione() ??
Software gratuito per gestire le tue newsletter: Mercurio
Allora, qui bisogna fare un distinguo:
-se stiamo parlando di dll native COM (volgarmente dette ActiveX) allora devi aggiungere la dll in questione ai riferimenti;
-altrimenti devi usare Declare per ogni funzione esportata dalla libreria nativa che vuoi usare (esattamente come nel caso delle API); ammettendo che la tua libreria si chiami pippo.dll ed esporti la funzione yukyuk così dichiarata in una dll C++:
allora in VB dovrai inserirecodice:int __declspec(dllexport) __stdcall yukyuk(int, double, char *);
L'alias da inserire in "aliasfunzione" dipende da molti fattori, tra cui se compili la dll con un compilatore C o C++ e se premetti alla definizione della funzione un "extern"; il modo più rapido per conoscere l'alias è guardare i nomi delle funzioni esportate dalla tua dll con il Dependency Walker. Puoi evitare di inserire l'alias disattivando la "decorazione" dei nomi delle funzioni esportati nel tuo compilatore, cosa generalmente non possibile, o inserendo nel progetto della dll un file .DEF con cui definire i nomi con cui esporterai le funzioni.codice:Public Declare Function yukyuk Alias "aliasfunzione" (X As Integer, Y As Double, Z As String) As Integer
Amaro C++, il gusto pieno dell'undefined behavior.
grazie mille come sempre!!!![]()
Software gratuito per gestire le tue newsletter: Mercurio