OVH Cloud OVH Cloud

[WD9] Interfacage DLL

5 réponses
Avatar
Sylvestre
Bonjour

Je cherche a interfacer une dll écrite en C, le
passage des tableaux en arguments
de fonctions pose problème, windev me renvoie une
erreur sur l'argument.
Le type spécifié dans la dll est, par ex,
"unsigned int * layers" avec
layers : unsigned int layers[4] = {2, 8, 9, 1};
Je passe un tableau windev de 4 entiers sans
signes sur 4 octets, mais ça coince...
Comment faire ?

merci

5 réponses

Avatar
Romain PETIT
Sylvestre a utilisé son clavier pour écrire :
Bonjour

Je cherche a interfacer une dll écrite en C, le passage des tableaux en
arguments
de fonctions pose problème, windev me renvoie une erreur sur l'argument.
Le type spécifié dans la dll est, par ex, "unsigned int * layers" avec
layers : unsigned int layers[4] = {2, 8, 9, 1};
Je passe un tableau windev de 4 entiers sans signes sur 4 octets, mais ça
coince...
Comment faire ?



unsigned int = entier sans signe sur 2 octets

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
patrice
Romain PETIT a écrit :
unsigned int = entier sans signe sur 2 octets


tout augmente....
maintenant int=4
(short int=2)

>>ayers : unsigned int layers[4] = {2, 8, 9, 1};
>>Je passe un tableau windev de 4 entiers sans
>>signes sur 4 octets, mais ça coince...

essayer de passer une structure avec 4 elements entiers sur 4

uint4 est une structre
elt1 est un entier sur 4 octets
elt2 est un entier sur 4 octets
elt3 est un entier sur 4 octets
elt4 est un entier sur 4 octets
fin
Avatar
Romain PETIT
patrice a formulé ce samedi :
Romain PETIT a écrit :
unsigned int = entier sans signe sur 2 octets


tout augmente....
maintenant int=4
(short int=2)



Tu as raison.
Mais qu'il essaye quand même....

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Sylvestre
Merci

Ca passe avec une structure, plus exactement avec
un pointeur sur la structure, merci bcp, ça sauve
mon projet.

Cordialement

"patrice" a écrit
dans le message de news:
454c49c8$0$2821$
Romain PETIT a écrit :
unsigned int = entier sans signe sur 2 octets


tout augmente....
maintenant int=4
(short int=2)

>>ayers : unsigned int layers[4] = {2, 8, 9,
>>1};
>>Je passe un tableau windev de 4 entiers sans
>>signes sur 4 octets, mais ça coince...

essayer de passer une structure avec 4 elements
entiers sur 4

uint4 est une structre
elt1 est un entier sur 4 octets
elt2 est un entier sur 4 octets
elt3 est un entier sur 4 octets
elt4 est un entier sur 4 octets
fin


Avatar
Sylvestre
Hello

En fait, en creusant la doc, on trouve le type
"tableau fixe" dédié au dll, ça fonctionne
également....



"Sylvestre" a écrit dans le
message de news:
454cb38e$0$31559$
Merci

Ca passe avec une structure, plus exactement
avec un pointeur sur la structure, merci bcp, ça
sauve
mon projet.

Cordialement

"patrice" a
écrit dans le message de news:
454c49c8$0$2821$
Romain PETIT a écrit :
unsigned int = entier sans signe sur 2 octets


tout augmente....
maintenant int=4
(short int=2)

>>ayers : unsigned int layers[4] = {2, 8, 9,
>>1};
>>Je passe un tableau windev de 4 entiers sans
>>signes sur 4 octets, mais ça coince...

essayer de passer une structure avec 4 elements
entiers sur 4

uint4 est une structre
elt1 est un entier sur 4 octets
elt2 est un entier sur 4 octets
elt3 est un entier sur 4 octets
elt4 est un entier sur 4 octets
fin