j'essaie sans succès de passer des valeurs de UDT (User defined types)
de VB6 à un dll en C.
en VB6, j'ai ceci, dans un module :
Type S52_extent
s As Double
w As Double
n As Double
e As Double
End Type
Public BBOX As S52_extent
Type S52_view
cLat As Double
cLon As Double
rNM As Double
End Type
Public vbox As S52_view
Declare Sub S52_getCellExtent Lib "C:\S52\libS52.dll" (ByVal S52_extent)
Declare Sub S52_setView Lib "C:\S52\libS52.dll" (ByVal S52_view)
Dans une procédure de la forme principale, j'ai ceci :
With BBOX
.s = -3805992.364422 's w n e
.w = 6787910.111066
.n = -3805313.78552
.e = 6788614.986082
End With
With vbox
.cLat = -32.496083
.cLon = 60.98
.rNM = 1#
End With
Call S52_getCellExtent(BBOX)
Call S52_setView(BBOX)
End Sub
A l'exécution (F5), j'obtiens l'erreur suivante :
"Only user-defined types defined in public object modules can be coerced
to or from a variant passed to late-bound functions."
En C, le code ayant servi à créer le lien VB6 - C :
typedef struct S52_view {
double cLat, cLon, rNM; // center of screen (lat,long), range
of view(NM)
} S52_view;
J'ai tout lu ce que j'ai trouvé sur le net à propos de ça, mais sans
succès, je suis même encore plus mêlé : ByVal, ByRef, Char*, *char,
module d'objet (de classe ou non).
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
jeanmarcnoury
On 4 mai, 20:02, epilot10 wrote:
Bonjour,
Hello,
j'essaie sans succès de passer des valeurs de UDT (User defined types) de VB6 à un dll en C.
...
J'ai tout lu ce que j'ai trouvé sur le net à propos de ça, mais san s succès, je suis même encore plus mêlé : ByVal, ByRef, Char*, *cha r, module d'objet (de classe ou non).
As tu lu cet artic le de la FAQ: http://faq.vb.free.fr/index.php?question4 et en particulier les liens proposés en fin d'article, notamment: http://support.microsoft.com/kb/194609/en-us
et surtout : http://download.microsoft.com/download/5/f/8/5f862469-98d3-493 6-a9d4-a7f83d779493/apiwin32.doc (celui la est à lire en premier si tu n'es pas à l'aise avec les byval/ byref/char et char*).
Ils contiennent vraiment toute l'info dont tu as besoin. LA lecture de ces articles suppose une bonne connaissance préalable de C et une compréhension en profondeur des notions de passage par adresse et par référence (en VB) ainsi que de la notion de pointeurs pour l'aspect C.
On 4 mai, 20:02, epilot10 <epilo...@yahoo.fr> wrote:
Bonjour,
Hello,
j'essaie sans succès de passer des valeurs de UDT (User defined types)
de VB6 à un dll en C.
...
J'ai tout lu ce que j'ai trouvé sur le net à propos de ça, mais san s
succès, je suis même encore plus mêlé : ByVal, ByRef, Char*, *cha r,
module d'objet (de classe ou non).
As tu lu cet artic le de la FAQ:
http://faq.vb.free.fr/index.php?question=144
et en particulier les liens proposés en fin d'article, notamment:
http://support.microsoft.com/kb/194609/en-us
et surtout : http://download.microsoft.com/download/5/f/8/5f862469-98d3-493 6-a9d4-a7f83d779493/apiwin32.doc
(celui la est à lire en premier si tu n'es pas à l'aise avec les byval/
byref/char et char*).
Ils contiennent vraiment toute l'info dont tu as besoin. LA lecture de
ces articles suppose une bonne connaissance préalable de C et une
compréhension en profondeur des notions de passage par adresse et par
référence (en VB) ainsi que de la notion de pointeurs pour l'aspect C.
j'essaie sans succès de passer des valeurs de UDT (User defined types) de VB6 à un dll en C.
...
J'ai tout lu ce que j'ai trouvé sur le net à propos de ça, mais san s succès, je suis même encore plus mêlé : ByVal, ByRef, Char*, *cha r, module d'objet (de classe ou non).
As tu lu cet artic le de la FAQ: http://faq.vb.free.fr/index.php?question4 et en particulier les liens proposés en fin d'article, notamment: http://support.microsoft.com/kb/194609/en-us
et surtout : http://download.microsoft.com/download/5/f/8/5f862469-98d3-493 6-a9d4-a7f83d779493/apiwin32.doc (celui la est à lire en premier si tu n'es pas à l'aise avec les byval/ byref/char et char*).
Ils contiennent vraiment toute l'info dont tu as besoin. LA lecture de ces articles suppose une bonne connaissance préalable de C et une compréhension en profondeur des notions de passage par adresse et par référence (en VB) ainsi que de la notion de pointeurs pour l'aspect C.
j'essaie sans succès de passer des valeurs de UDT (User defined types) de VB6 à un dll en C.
...
J'ai tout lu ce que j'ai trouvé sur le net à propos de ça, mais sans succès, je suis même encore plus mêlé : ByVal, ByRef, Char*, *char, module d'objet (de classe ou non).
As tu lu cet artic le de la FAQ: http://faq.vb.free.fr/index.php?question4 et en particulier les liens proposés en fin d'article, notamment: http://support.microsoft.com/kb/194609/en-us
et surtout : http://download.microsoft.com/download/5/f/8/5f862469-98d3-4936-a9d4-a7f83d779493/apiwin32.doc (celui la est à lire en premier si tu n'es pas à l'aise avec les byval/ byref/char et char*).
Ils contiennent vraiment toute l'info dont tu as besoin. LA lecture de ces articles suppose une bonne connaissance préalable de C et une compréhension en profondeur des notions de passage par adresse et par référence (en VB) ainsi que de la notion de pointeurs pour l'aspect C.
On 4 mai, 20:02, epilot10 <epilo...@yahoo.fr> wrote:
Bonjour,
Hello,
j'essaie sans succès de passer des valeurs de UDT (User defined types)
de VB6 à un dll en C.
...
J'ai tout lu ce que j'ai trouvé sur le net à propos de ça, mais sans
succès, je suis même encore plus mêlé : ByVal, ByRef, Char*, *char,
module d'objet (de classe ou non).
As tu lu cet artic le de la FAQ:
http://faq.vb.free.fr/index.php?question4
et en particulier les liens proposés en fin d'article, notamment:
http://support.microsoft.com/kb/194609/en-us
et surtout : http://download.microsoft.com/download/5/f/8/5f862469-98d3-4936-a9d4-a7f83d779493/apiwin32.doc
(celui la est à lire en premier si tu n'es pas à l'aise avec les byval/
byref/char et char*).
Ils contiennent vraiment toute l'info dont tu as besoin. LA lecture de
ces articles suppose une bonne connaissance préalable de C et une
compréhension en profondeur des notions de passage par adresse et par
référence (en VB) ainsi que de la notion de pointeurs pour l'aspect C.
j'essaie sans succès de passer des valeurs de UDT (User defined types) de VB6 à un dll en C.
...
J'ai tout lu ce que j'ai trouvé sur le net à propos de ça, mais sans succès, je suis même encore plus mêlé : ByVal, ByRef, Char*, *char, module d'objet (de classe ou non).
As tu lu cet artic le de la FAQ: http://faq.vb.free.fr/index.php?question4 et en particulier les liens proposés en fin d'article, notamment: http://support.microsoft.com/kb/194609/en-us
et surtout : http://download.microsoft.com/download/5/f/8/5f862469-98d3-4936-a9d4-a7f83d779493/apiwin32.doc (celui la est à lire en premier si tu n'es pas à l'aise avec les byval/ byref/char et char*).
Ils contiennent vraiment toute l'info dont tu as besoin. LA lecture de ces articles suppose une bonne connaissance préalable de C et une compréhension en profondeur des notions de passage par adresse et par référence (en VB) ainsi que de la notion de pointeurs pour l'aspect C.