Oppure

Loading
10/03/11 16:10
Neo1986
Ciao a tutti!

sono un pò in difficolta per l'importazione di questa funzione da una dll :

HANDLE WINAPI ISMM_Open(
Void
);


Subito pensavo fosse una dll scritta in C, allora ho fatto questa prova :

<DllImport("ISMM.dll")> _
    Public Shared Function ISMM_Open() As ULong
    End Function


ma ovviamente non funziona perchè le funzioni successive richiedono l'handle del return della funzione ISMM_Open..... ed essendo sbagliato non lavorano.

Come si importa una dll winapi?

Grazie
aaa
10/03/11 18:39
netarrow
Gli HANDLE del codice non gestito vengono marshallati in IntPtr nel codice gestito.

Quindi prova con:

DllImport("ISMM.dll")> _
    Public Shared Function ISMM_Open() As IntPtr
    End Function


Ovviamente in tutte le funzioni che importi dovrai mettere IntPtr dove la firma nativa si aspetta un HANDLE.

Per una tabella riassuntiva del marshalling automaticamente fatto dal .net guarda qui: msdn.microsoft.com/en-us/library/…
aaa