Va bene ... ma nel codice VB devi prevedere una dichiarazione di una funzione che sta nella DLL.
Poi dovrai richiamare questa funzione da VB passando quello che serve e ottenendo quello che vuoi.
Ad esempio, potrai dichiarare la funzione
Declare Function GetRecord Lib "TuaDLL.dll" () As Long
che esegua la funzione GetRecord all'interno della tua dll che restituisce un puntatore alla struttura letta.
Quel valore long, lo passerai alla CopyMemory per trasferire (come ti dicevo) i dati nella variabile strutturata del VB.
OPPURE, potrai dichiarare la funzione in questo modo
Declare Sub GetRecord Lib "TuaDLL.dll" (ByRef st As TipoStruttura)
e passare cosi' alla tua dll il puntatore all'area di memoria VB dove hai dichiarato la tua variabile strutturato cosi' che il codice C la riempia SENZA necessita' di CopyMemory.
Se hai problemi, inviami il progetto VB e C e ti suggerisco il codice ...
P.S. Ma perche' non fai tutto in VB? Oppure tutto in C?
Ultima modifica effettuata da gantonio il 03/05/2008 alle 11:54 |