Ciao
Facendo una ricerca con google ho trovato che il tuo problema è stato riscontrato da molte altre persone. Nel thread si parlava di un problema nella dll, qualcosa come un riferimento sbagliato... Alla fine comunque il problema era stato risolto cambiando la libreria: per l'ambiente .Net bisognerebbe usare la OPCNetApi.dll, scaricabile dai membri dal sito http://opcfoundation.org
Se ti interessa questo è il thread del forum dove ho trovato le informazioni (è in lingua inglese):
http://forums.microsoft.com/msdn/showpost.aspx?postid=497846&siteid=1&sb=0&d=1&at=7&ft=11&tf=0&pageid=0
Per quanto riguarda il secondo errore, quello del DllImport, era dovuto ad un errore di sintassi: poichè nel VB ad ogni linea corrisponde un'istruzione, l'attributo DllImport dovrebbe stare sulla stessa riga in cui dichiari l'oggetto a cui associarlo. Per rendere più chiaro il codice può essere utile tornare a capo, ma per fare ciò bisogna segnalare che le due linee sono da intendre come una sola. Per farlo, devi inserire alla fine della riga uno spazio e un carattere underscore "_", quindi l'istruzione diverrebbe così:
<DllImport("OpcDaCube.dll")> _
Class Classe
'...
End Class
Anche questo però restituirebbe un errore, in quanto l'attributo DllImportAttribute può essere assegnato solo a un metodo (statico), per indicare che viene chiamato da una libreria dll non gestita.
Luca