[Résolu] Problème d'interfaçage de Windev 11 avec un ActiveX
Stagiaire WDF
Inscrit:
20/03/2007 19:53
Post(s): 12
Bonjour à tous !
Pour ce premier post, je vous soumets un problème assez ennuyeux, pour lequel je n'ai pas trouvé la solution, malgré de nombreux essais infructueux, même après l'avoir décrit sur le forum de PCSoft :

Je dois utiliser dans une application Windev un lecteur d'empreinte digitale de chez Microsoft (FingerPrint Reader).
Pour cela j'utilise un ActiveX fournit dans un SDK (de chez Griaule) qui gère l'ensemble des opérations d'acquisition / comparaison d'empreintes. Le SDK est fournit avec des exemples en VB, VC++, Delphi et même en VBA sous Excel, que j'ai testés et qui fonctionnent très bien.

Sous Windev, j'ai implémenté l'ActiveX, et l'ensemble des méthodes fonctionnent.
Les fonctions CallBack de détection du doigt (FigerDown / FingerUp) fonctionnent aussi...
La seule chose qui ne fonctionne pas est la fonction CallBack qui retourne l'image de l'empreinte digitale...
En voici la syntaxe :
PROCEDURE Aquisition_Image(Param_ID_Sensor, Param_Largeur, Param_Hauteur, Param_Image)

Quand on pose le doigt sur le lecteur, la fonction est appelée, mais génère le message d'erreur suivant :

"Le passage du paramètre 4 a provoqué une erreur."
"Types incompatibles durant une affectation."
"- Code erreur : 1053"

Ce 4eme parametre est celui de l'image elle-meme, en format brut, c'est à dire une suite d'octets représentant l'image (en fait 355x390 octets, soit 138 450 octets)

Si je supprime ce 4eme paramètre de la procédure, je n'ai plus de message d'erreur et les 3 premiers parametres contiennent les bonnes valeurs... sauf que là il me manque l'image de l'empreinte !!!

Sur un autre forum de discussion, j'ai trouvé quelqu'un qui dit que dans l'appel d'une DLL avec Windev, on ne peut pas passer une zone de plus de 64Ko... voir ICI
Or, il me semblait que les paramètres étaient passés par adresse (pointeur) et pas par valeur...

Pourriez-vous m'éclairer sur ce mystère ???
Je vous remercie d'avance... déjà pour votre patience (d'avoir lu ce post complètement), et puis peut-être pour l'aide et éventuellement la solution que vous pourrez me donner !

A bientot - Murphy

Contribution le : 20/03/2007 21:34

Edité par drcharly93 sur 15/4/2007 2:18:32
Créer un fichier PDF de la contribution Imprimer


Re: Problème d'interfaçage de Windev 11 avec un ActiveX
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

La première question qui me viens à l'esprit est de demander de quel type est le 4ieme paramètre.

Contribution le : 21/03/2007 01:54
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Problème d'interfaçage de Windev 11 avec un ActiveX
Stagiaire WDF
Inscrit:
20/03/2007 19:53
Post(s): 12
@ drcharly : Bonjour !
Le format est celui que j'indique dans mon post : format brut (en anglais Raw) de 138 450 octets.
On pourrait l'apparenter à un Buffer de cette taille.

Bon, j'ai déjà essayé de typer ce 4eme parametre en indiquant qu'il sagit d'un format Buffer (syntaxe : Param_Image est un Buffer), et même d'un Variant, mais c'est pareil...message d'erreur Windev...

Je me répète peux être, mais j'ai déjà fait tous les tests en VB, CSharp et VBA sous Excel, et là tout fonctionne.
Pour info, en VB, pour ce paramètre, c'est le type "Variant. Syntaxe de la fonction CallBack :
Sub Aquisition_Image(ByVal Param_ID_Sensor As String, ByVal Param_Largeur As Long, ByVal Param_Hauteur As Long, ByVal Param_Image As Variant)

Et ça marche ! acquisition / reconnaissance / etc...

Comme sous Windev le passage des paramètres se fait par Adresse, je ne comprend pas cette erreur...
Peut-être qu'il y a un controle du type et de la taille des variables que l'ActiveX renvoit à Windev... et qu'une limite de taille existe... mais je n'en sais rien...

Merci et à +
Murphy

Contribution le : 21/03/2007 11:08
Créer un fichier PDF de la contribution Imprimer


Re: Problème d'interfaçage de Windev 11 avec un ActiveX
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Je vois deux Idées:
1) Utiliser un objet de type automation dynamique

2) Récupérer votre image via un Script VB intégré directement dans le WLangage, j'ai d'ailleurs à ce sujet développé une classe qui permet d'exécuter du code VBScript sous WinDev, à tester pour voir si cela pourraît fonctionner dans votre cas.

Contribution le : 21/03/2007 11:32
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Problème d'interfaçage de Windev 11 avec un ActiveX
Stagiaire WDF
Inscrit:
20/03/2007 19:53
Post(s): 12
Merci de la réponse drcharly !
Ce sont 2 excellentes idées.

Pour le moment, faute de temps, je laisse cette partie de mon projet de coté...

J'ai passé le problème à PCSoft via la hotline il y a 5 jours, et pour le moment c'est silence radio... c'est bon signe, sinon ils m'auraient déjà répondu un truc bateau...

Je pense vraiment, après d'autres tests concluants en C# et Delphi, que la routine de gestion du callback de Windev est en cause...

Wait and see comme on dit !
A+ Murphy

Contribution le : 23/03/2007 10:10
Créer un fichier PDF de la contribution Imprimer


Re: Problème d'interfaçage de Windev 11 avec un ActiveX
Stagiaire WDF
Inscrit:
05/10/2005 12:32
De LA VARENNE SAINT HILAIRE
Post(s): 20
Bonjour,

Je sais que cela sort un peu du contexte mais je serais interessé par la classe permettant d'éxécuter du code VBScript, je ne crois pas l'avoir vu dans les ressources disponible.


Merci.

Contribution le : 26/03/2007 10:00
Créer un fichier PDF de la contribution Imprimer


Re: Problème d'interfaçage de Windev 11 avec un ActiveX
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Cette classe existe mais en effet n'a pas encore été mis à disposition sur le site, Bien que la classe soit fonctionnelle nous nous efforçons d'apporter une page aide pour explique le fonctionnement la mise en place et l'intérêt de son utilisation afin que l'intégration des ressources fournies soient du plus simple possible. Le problème reste le faite que cela soit contraignant et prenne du temps.

Contribution le : 26/03/2007 12:46
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Problème d'interfaçage de Windev 11 avec un ActiveX
Stagiaire WDF
Inscrit:
05/10/2005 12:32
De LA VARENNE SAINT HILAIRE
Post(s): 20
Ok, merci pour ta réponse. Ce n'est pas grâve je patienterais tout le temps qu'il faudra, c'était dans le cas d'un éventuel besoin.

Contribution le : 27/03/2007 11:58
Créer un fichier PDF de la contribution Imprimer


Re: Problème d'interfaçage de Windev 11 avec un ActiveX
Stagiaire WDF
Inscrit:
20/03/2007 19:53
Post(s): 12
Bonjour a tous !
Voici la réponce de PCsoft reçu ce matin :

Bonjour,

Suite à votre contact avec le Support Technique Gratuit concernant la récupération d'un paramètre "RawImage" d'un ActiveX.

Les investigations menées par notre équipe Développement et notre équipe Qualité montrent malheureusement que ce passage de paramètre n'est pas accepté par la version actuelle de WINDEV.

L'étude de l'ajout de la gestion de ce paramètre est tout à fait envisageable. Pour la débuter, il faudrait dans un premier temps nous faire parvenir une copie du message complet retourné par le mécanisme de sécurité du WLangage (texte complet récupérer par le bouton "Copier"). Les codes contenus dans le message peuvent nous orienter. Dans un second temps, l'ActiveX peut nous être nécessaires. Cette procédure est-elle utilisable dans un mode test sans périphérique spécifique connecté ?

Notez qu'en palliatif immédiat, vous pouvez utiliser un module d'interface créer dans un autre langage que vous avez en exemple avec votre ActiveX. Ce module pourra être appelé par l'ActiveX pour sauver l'image, et votre application pourra l'appeler à son tour pour obtenir l'image sauvée sur disque pour en mémoire.

Pff !!! et dire que ça marche dans tous les autres langages que j'ai testés ! (VB, VC++, VC#, Delphi et VBA Excel)
Allez, à plus !

Contribution le : 11/04/2007 09:13
Créer un fichier PDF de la contribution Imprimer


Re: Problème d'interfaçage de Windev 11 avec un ActiveX
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour

et comme ceci
ParamImage est un tableau dynamique de 0 octets

PROCEDURE Aquisition_Image(Param_ID_Sensor, Param_Largeur, Param_Hauteur, &Param_Image)

ou bien
ParamImage est un objet automation dynamique

PROCEDURE Aquisition_Image(Param_ID_Sensor, Param_Largeur, Param_Hauteur, &Param_Image)


au pire peut être passer par des objets DOTNET
ParamImage est un "Object" dynamique
PROCEDURE Aquisition_Image(Param_ID_Sensor, Param_Largeur, Param_Hauteur, Param_Image)

Contribution le : 11/04/2007 10:59
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Problème d'interfaçage de Windev 11 avec un ActiveX
Stagiaire WDF
Inscrit:
20/03/2007 19:53
Post(s): 12
Encore moi !

Merci Drcharly93 de cette idée, mais hélas cette syntaxe (avec le &) ne fonctionne pas dans ce cas de figure - j'ai bien essayé au début de mes tests, mais Windev la refuse...

Bon, après le message du support technique de PCsoft, j'ai retourné mes manches et j'ai tout repris du début, mais cette fois en utilisant la DLL fournie avec le SDK, et pas l'ActiveX - Les 2 font exactement la même chose.

Et là, ça fonctionne !!!
L'avantage des appels à la DLL, c'est que là, on indique clairement ce que l'on veut faire passer en paramètres, pointeurs compris...

Je pense donc que la gestion de l'ActiveX dans ce cas pose problème à Windev, car on ne maitrise absolument pas le passage des paramètres dans l'appel de la procédure (alors que ça passe nickel dans les autres langages que j'ai testés)...

Donc, mon soucis est réglé, et je vous remercie d'avoir passé un peu de temps à lire ce fil de discussion !

A bientôt pour de nouvelles aventures
Murphy

Contribution le : 14/04/2007 01:34
Créer un fichier PDF de la contribution Imprimer


Re: [Résolu] Problème d'interfaçage de Windev 11 avec un ActiveX
Stagiaire WDF
Inscrit:
14/10/2010 22:23
Post(s): 3
Quelqu'un a trouvé une solution?

je suis prèt a payer.

j'ai windev 14

en passant est-ce résolu en windev 15

fabien

Contribution le : 14/10/2010 22:25
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2