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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <utilisateur@exemple.fr> a écrit dans le message de
news:c75idg$10ob$1@biggoron.nerim.net
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 ?
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
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..
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
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..
"Jeremy" <utilisateur@exemple.fr> wrote in message
news:c75idg$10ob$1@biggoron.nerim.net...
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 ?
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..
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 ?