[Vb.net] Help su DLL

lunedì 14 febbraio 2005 - 13.54

Andy Profilo | Senior Member

Buongiorno forum..visto che in gio trovo molteplici metodi, e non sono riuscito a chiarirmi le idee su come si utilizzano delle DLL create da me nei vari programmi, chiedo un suggerimento pratico a chi già dovesse farne uso:

Io ho creato un progetto Libreria di Classi in cui ho una classe con un'unica funzione, che per semplicità non riporto interamente ma solo la dichiarazione:

Public Class SEMClass

'*****************************************************************************
'TROVA DESTINAZIONE DELLA MERCE
'*****************************************************************************
Public Function Trova_Destinazione_Merce(ByVal Nr_Off As Integer) As String
Dim Dest As string
...
...
...
Trova_Destinazione_Merce = Dest
End Function

End Class

Generata la soluzione, ho la mia DLL; ora prendo il file DLL, lo copio nella cartella del progetto dove verrà utilizzata.

La mia domanda è..all'atto pratico, da questo punto in poi, cosa devo fare?
In che modo io la vedo nel progetto che la deve utilizzare?

Intanto ringrazio per l'attenzione..

Cteniza Profilo | Guru

Usare le dll su .NET (almeno quelle native) è un gioco da ragazzi.
Inserisci la dll tra i riferimenti del tuo progetto e puoi iniziare ad utilizzare tutti gli oggetti classi / metodi inseriti.
Eventualmente se hanno dei namespace diversi e non vuoi scriverne sempre i nomi inserisci anche Imports (namespace).

Andy Profilo | Senior Member

No, non ci siamo..dovete scusare la mia ignoranza ma non avendo mai usato questo tipo di metodologia, ne tantomeno le classi non riesco ancora ad arrivarci..in pratica, io ho aggiunto la classe nei riferimenti, ed in effetti la vedo tra gli oggetti referenziati.

Ora cosa devo fare?

Se io chiamo nel codice SEMClass.Trova_destinazione_Merce(Ordine) me la segna come errore..

Andy Profilo | Senior Member

Trovato..non vedo la funzione perchè sembra che la mia DLL contenga solo le strutture dati, mentre la funzione che ho creato(come da post precedente) non me la veda..come mai?

Brainkiller Profilo | Guru

Ciao Andy,
mi pare di avere capito il tuo problema.
Se definisci una funzione/metodo in una classe, e vuoi richiamarlo da altre parti nel tuo codice hai due modi:

1) Devi creare un'istanza della classe per poterlo richiamare, esempio:

MyClass m=new MyClass();
m.NomeMetodo()

2) Dichiarare il metodo come Shared (VB.NET) oppure Static (C#)

In questo modo potrai richiamare il metodo così:

Nomeclasse.NomeMetodo()

senza creare istanza di classe.

ciao
david

Andy Profilo | Senior Member

Ciao Ragazzi..vi ringrazio molto per l'"assistenza" che mi state dando, ma il problema non è ancora risolto..so che magari è una stupidata che faccio io, non avendo le basi necessarie, ma sbattendoci la etsta..per semplicità riepilogo tutto:
----------------------
LA MIA CLASSE (SEMDLL001):
----------------------
Option Strict On ' Optional
Option Explicit On ' Optional

Imports System.Runtime.InteropServices

Public Class SEMClass

Structure Dest_Struct
Public Rag_Soc As String
Public Indirizzo As String
Public CAP As String
Public Località As String
Public Nazione As String
Public D_RagSoc As String
Public D_Indirizzo As String
Public D_CAP As String
Public D_Località As String
Public D_Nazione As String
End Structure

'******************************************
'TROVA DETTAGLI DI DESTINAZIONE DELLA MERCE
'******************************************
Public Function Trova_Destinazione_Merce(ByVal Nr_Off As Integer) As Dest_Struct
Dim Destinazione As Dest_Struct

<... vi risparmio la funzione..>

Trova_Destinazione_Merce = Destinazione
End Function
End Class


Dopo che l'ho compilata, aggiunta nelle References, aggiunto nel mio programma

Imports System.Runtime.InteropServices
Imports SemDLL001.SEMClass

Nel visualizzatore oggetti vedo ancora solo la struttura, non la mia funzione, anche dichiarando il metodo come Shared..(come da allegato)

dove erro? grazie ancora..
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5