Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme de type

2 réponses
Avatar
Jeremy
j'ai une application a débugger mais je ne comprend pas les erreurs.
j'ai une fonction qui prend en parametre un type POINTAPI, et quand je
lance l'appli, il me sort type non reconnu. le type RECT pose probleme
lui aussi et fait planter l'appli.
Est ce que POINTAPI et RECT font ils tous les deux partie de la dll
gdi32.dll ?
Quelqu'un aurait il une réponse ?

Merci bcp d'avance

2 réponses

Avatar
François Picalausa
Hello!

Les structures sont juste des moyens d'organiser des données.
Il faut donc voir quelle est l'API en question et quelle paramètre elle
prend en entrée.

Si elle prend un pointeur vers une structure, il faudra déclarer
Declare Function ... (ByRef Param1 As MaStructure)

Si elle prend une structure (pas de pointeur), il faudrait passer la valeur
Byval, ce qui ne peut pas se faire en VB.
Il faut donc réorganiser les données.

Si par exemple on a une structure contenant deux integers, on peut utiliser
un type de donnée long et réassociers les deux integers dans un long.
Sinon, à l'aide de copymemory et d'une variable chaine, on peut le faire.

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Jeremy" a écrit dans le message de
news:c75idg$10ob$
j'ai une application a débugger mais je ne comprend pas les erreurs.
j'ai une fonction qui prend en parametre un type POINTAPI, et quand je
lance l'appli, il me sort type non reconnu. le type RECT pose probleme
lui aussi et fait planter l'appli.
Est ce que POINTAPI et RECT font ils tous les deux partie de la dll
gdi32.dll ?
Quelqu'un aurait il une réponse ?

Merci bcp d'avance


Avatar
Zoury
Salut Jeremy! :O)

Les structures POINT (POINTAPI étant un alias) et RECT sont deux structures
défini dans windef.h. Ces structures sont utilisés par plusieurs DLL dont
GDI32.DLL.
Lorsque tu utilises des fonctions APIs qui utilise des structures (peu
importe lesquelles), tu dois définir les structures nécessaires dans ton
code VB.

Dans ton cas tu dois déclarer les structures POINTAPI et RECT. Ajoute ces
définitions dans la section (General) (Declaration) du module utilisant ces
structures.

'***
Public/Private Type POINTAPI
x As Long
y As Long
End Type

Public/Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
'***

ps : Choisi lequel de Public ou Private convient le mieux à ces
définitions..

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

"Jeremy" wrote in message
news:c75idg$10ob$
j'ai une application a débugger mais je ne comprend pas les erreurs.
j'ai une fonction qui prend en parametre un type POINTAPI, et quand je
lance l'appli, il me sort type non reconnu. le type RECT pose probleme
lui aussi et fait planter l'appli.
Est ce que POINTAPI et RECT font ils tous les deux partie de la dll
gdi32.dll ?
Quelqu'un aurait il une réponse ?

Merci bcp d'avance