Logo UGIdotNET

Discussione 'importare librerie'

# Pubblicato il 18 mar 2004 16.30 - Rispondi
gianni mancini
importare librerie
ho bisogno di usare delle funzioni implementate in fortrant racchiuse in una libreria .lib.
ho provato con [DllImport("mylib.lib")] static extern Int32 MyFunction
(Int32 param1);
ma mi dà errore dicendomi che non trova mylib:
dove devo salvare la mia libreria,devo registrarla in qualche modo?
# Pubblicato il 18 mar 2004 16.50 - Rispondi
Corrado Cavalli [MVP]
Re: importare librerie

La libreria in questo caso non va registrata, deve però essere nei percorsi
previsti per il probing, prova a mettere la dll nella stessa directory dove
si trova l'eseguibile...

--
Corrado Cavalli [Microsoft .NET MVP-MCP]
UGIdotNET - http://www.ugidotnet.org
Weblog: http://www.ugidotnet.org/710.blog



----------------------
Questo messaggio è stato postato da microsoft.public.it.dotnet.csharp.
# Pubblicato il 18 mar 2004 17.35 - Rispondi
Antonello Tesoro
Re: importare librerie

Non è il file di lib che devi importare. Quello lo usa il linker del C++ per
legare le importazioni del tuo exe ( unmanaged ) con le esportazioni della
dll che ti interessa
( che di solito ha lo stesso nome del tuo file lib ma con l'estensione dll )
quindi assumando che la tua dll sia nella cartella del tuo exe ( managed ) o
in %systemroot%\system32 e che si chiami come la lib dovresti scrivere

[DllImport("mylib.dll")]
static extern Int32 MyFunction (Int32 param1);

P.S. hai detto che la dll è in fortran qunidi devi specificare anche la
calling convention da usare. ( Non ricordo il Fortran come passi i parametri
sullo stack e chi ha la responsabilità di pulire lo stack quindi dovi
reperire un po' di doc su quello se vuoi che tutto funzioni!)

HTH
Antonello Tesoro

"UGI 2444" <UGI2444_TOGLIQUESTASTRINGA@ugidotnet.org> ha scritto nel
messaggio news:23c7a842-638d-47a4-bd37-34bfee349328@UGI34681...
> ho bisogno di usare delle funzioni implementate in fortrant racchiuse in
una
> libreria .lib.
> ho provato con [DllImport("mylib.lib")] static extern Int32 MyFunction
> (Int32 param1);
> ma mi dà errore dicendomi che non trova mylib:
> dove devo salvare la mia libreria,devo registrarla in qualche modo?
>
> ----------------------
> Questo messaggio è stato postato da http://www.ugidotnet.org/forum
> UGIdotNET - User Group Italiano .NET


----------------------
Questo messaggio è stato postato da microsoft.public.it.dotnet.csharp.

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185