Importation de dll sous VB 6.0

Bojczuk Messages postés 2 Date d'inscription mercredi 3 août 2005 Statut Membre Dernière intervention 2 mai 2006 - 2 mai 2006 à 13:33
 mury - 26 sept. 2012 à 16:41
Bonjour,

j'ai besoin de connaitre la façon d'incorporer une fonction issue d'une DLL avec un passage par valeur pour un type défini par l'utilisateur.
En effet je dois intégrer sous VB une fonction du type :
short

_Ic_InitChip( HANDLE hdrv,t_CANbusParams busParams, unsigned long adressing, unsigned long padding);
ou la structure t_CANbus Params  ets définie comme suit :
typedef

struct{

unsigned
char baudpresc;
// Baud Rate Prescaler

unsigned
char tseg1;
// TSEG1

unsigned
char tseg2;
// TSEG2

unsigned
char sjw;
// Synchronization Jump Width

unsigned
char sample;
// Sampling mode} t_CANbusParams;

j'ai converti cela en VB de la façon suivante :

Type udtCANbusParams
    baudpresc As Byte  ' Baud Rate Prescaler
    tseg1 As Byte      ' TSEG1
    tseg2 As Byte      ' TSEG2
    sjw As Byte        ' Synchronization Jump Width
    sample As Byte     ' Sampling mode
End Type

Declare Function Ic_InitChip Lib "xxx.dll" Alias "_Ic_InitChip" (ByVal hdrv As Long, ByVal busParams As udtCANbusParams, ByVal adressing As Long, padding As Long) As Integer

Mais cela ne fonctionne pas....

quelle est la bonne déclaration ??

Merci d'avance pour votre aide.

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 mai 2006 à 13:51
Manque deja le ByVal pour padding.

Aucune idée pour passage struct depuis VB.
Tu es certain que ce n'est pas l'adresse de la struct qui est demandée:
_Ic_InitChip( HANDLE hdrv,t_CANbusParams *busParams, ....) ???

ciao...
BruNews, MVP VC++
0
Bojczuk Messages postés 2 Date d'inscription mercredi 3 août 2005 Statut Membre Dernière intervention 2 mai 2006
2 mai 2006 à 13:53
Oui hélas je suis certain que ce n'est pas l'adresse, car dans ce cas je sais comment faire...
0
Et depuis le 2 mai 2006, as-tu trouvé une solution ? J'ai le même problème avec la même fonction... merci
0
Rejoignez-nous