Newsgroup: it.comp.lang.visual-basic
Titolo: utilizzare dll - come?

Cao a tutti.
 
Per lavoro ho appena acquistato una cella di carico/bilancia con uscita USB.
Assieme a questa c'è anche un file dll per la creazione di software 
personalizzato per leggere e gestire la bilancia.
Sono sufficentemente/discetamente pratico di visual basic (utilizzo la 
versione 2010 express), ma non ho mai utilizzato delle dll.
Ho provato ad improvvisare, ma durante l'esecuzione del programma mi compare 
un errore che non conosco:
 
Impossibile trovare un punto di ingresso con nome 'Elane_GetLCSerialNumber' 
nella DLL 'elanescale.dll'.
 
Qualcuno mi aiuta? Dove posso trovare delle informazioni sull'utilizzo delle 
dll?
 
Qui c'è un file che dovrebbe spiegare le funzioni della dll.
 
http://www.elane.net/UserManuals/Specifications_DLL_for_Elane_USB_Scales.pdf
 
 
Grazie. Ciao. Andrea. 
 
 


Ciao.
Domanda banale: l'hai opportunamente posizionata e seguentemente registrata?
Dalla guida sembrerebbe semplice.
 
F.

 Grazie. Ciao. Andrea.
Ciao.
Domanda banale: l'hai opportunamente posizionata e seguentemente registrata?
Dalla guida sembrerebbe semplice.
 
Come scrivo piů sopra non ho mai utilizzato delle dll e non ho idea di cosa 
sia il posizionamento e la registrazione.
 
Mi puoi spiegare?
 
Mi potrei accontentare anche di una guida step-by-step.
 
Grazie. Ciao. 
 
 


La DLL è codice UNMANAGED!
Non avendo dubbi che sia stata scritta "bene"....
devi usare
  System.Runtime.InteropServices
 
trovi molte doc in internet
ad esempio
http://www.dotnethell.it/articles/UnmanagedDLL.aspx
 
 
http://msdn.microsoft.com/it-it/library/26thfadc
 

 Mi potrei accontentare anche di una guida step-by-step.
 
Quelle due cose sono spiegate proprio step-by-step nella documentazione che ci hai linkato, in fondo alla prima pagina...
 
Se è come credo, *non* dovrebbe essere usata tramite Interop e DLLImport come forse hai provato a fare all'inizio... dal tipo di sintassi usata nel documento, sembrerebbe una DLL COM scritta in VB, quindi, fatto quanto detto sopra, potrebbe essere sufficente aggiungere un riferimento a 'elanescale.dll' nel tuo progetto.
A quel punto, nell'object browser di Visual Studio dovresti vedere le classi e i metodi esposti, così come descritti nel documento, e poterli usare direttamente.

 La DLL è codice UNMANAGED!
 
Se guardi solo l'estensione non è sempre così :D
 

 Mi potrei accontentare anche di una guida step-by-step.
 
Quelle due cose sono spiegate proprio step-by-step nella documentazione che 
ci hai linkato, in fondo alla prima pagina...
 
Dal tipo di sintassi usata nel documento, sembrerebbe una DLL COM scritta in 
VB, quindi, fatto quanto detto sopra, potrebbe essere sufficente aggiungere 
un riferimento a 'elanescale.dll' nel tuo progetto.
 
Ok, ho capito, intendi quella riga di comando regsvr32...... Si, l'ho fatta 
ed č andata a buon fine.
 
Poi ho creato un progetto nuovo inserendo solo questo:
 
Public Class Form1
 
    Private Declare Function Elane_FindUSBScale Lib "elanescale.dll" () As 
Boolean
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles MyBase.Load
 
        Dim scala As Boolean
 
        scala = Elane_FindUSBScale()
 
    End Sub
 
End Class
 
ma come dicevo mi da l'errore che riporto sopra.
 
Ciao. 
 
 

 Ciao.
 
Come accenavo prima, sia il fatto che richiede RIGSVR32, sia il fatto che citano una sintassi VB nella documentazione, indicherebbe che questa non è una DLL standard ma una DLL COM (altrimenti detta DLL ActiveX).
 
Quindi *NON* va usata con Declare Function/DLLImport e simili, ma aggiunta invece nelle References e usata direttamente come fosse una classe qualunque "NomeClasse.Elane_FindUSBScale" (NomeClasse corretto lo trovi nell'object browser dopo che hai aggiunto il riferimento alla dll)

On 08/06/2012 11:30, Andrea wrote:
zac
Quello che intendono dirti è questo......
comprati questo sw....vedo che c'hai non una ma ben 3 dll
apigid32.dll
hid.dll
setupapi.dll
 
questo sono le dipendenze....c'è scritto...DEVONO STARE nel System 
folder....DEVONO STARE LI se no non funziona nulla!
 
Se stanno li....fai un
regsvr32 "C:\MyDLLs\ElaneScale.dll"
 
fin qui che sia vb6 C o 
vb.net
 poco importa
 
Adesso vogliono dirti che se vai ad aprire un nuovo progetto 
vb.net
 
questa dll non viene automaticamente caricata....lo devi fare in maniera 
esplicita da IDE!
Quindi devi andare nelle proprietà del tuo progetto....etichetta 
riferimenti...aggiungi riferimento
... navigare nel tuo HD fino a trovare il file
metterlo nelle referenze del tuo progetto (nell'esempio è in 
c:\MyDLLS)...eeee BASTA!
 
 
...per vedere SE DAVVERO espone le interfacce com che dice di avere....è 
più semplice di quel che credi...
La dll è agganciata nelle referenze.....
vai nell'object browser....e guarda se c'è fra gli oggetti del tuo 
progetto..e che metodi/proprietà ESPONE
 
Se c'è e si chiama che so ELANE
 
molto probailmente dovrai fare una cosa del tipo
 
dim Bilancia as new Elane
..e poi qualcosa tipo...dim KG as single= Bilancia.PesaGrassone...etc etc
 
 
possibili problemi:
Immagino che dovrai essee admin quando dovrai registrare la dll
 

 ha scritto nel messaggio 
news:4fd21324$0$6836$5fc...@news.tiscali.it...

Questo si che è bello step-by-step. Conciso, un po severo, ma efficace.
 
1000 punti a te.
 
Problema risolto.
 
Grazie. Ciao.