PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Plantage d'un programme utilisant un API après migration  de WD21 vers WD22
Plantage d'un programme utilisant un API après migration de WD21 vers WD22
Débuté par Olivier, 22 mai 2017 17:29 - 3 réponses
Membre enregistré
88 messages
Popularité : +2 (2 votes)
Posté le 22 mai 2017 - 17:29
Bonjour,
J'ai une application développée en WD21, qui utilise un module USB connecté à des machines pour récupérer des comptages.
Ce module USB (marque DEDITEC) est géré par une API.

En WD21, j'ai développé le programme qui marche très bien.
Il est installé sur un serveur Windows 2012R2 (anglais), et, est utilisé en mode TSE (sur des clients légers). (Seul Windows 2012R2 peut gérer ce périphérique USB via le client léger, c'est le pourquoi de cet O.S.)

Début Avril, j'ai migré l'application en WD22, et j'ai travaillé dessus (presque 2 mois) pour la faire évoluer.

Début de semaine dernière, la mise à jour étant terminée, j'ai donc compilé le programme (en 64bits) et l'ai installé sur le serveur.

A l'exécution, le programme se plante violemment (erreur Windows, pas possible à tracer) dès que je sollicite l'API.

J'ai donc passé 3 jours à mettre en évidence le phénomène, et j'ai crée un projet (contenant une fenêtre, et tout ce qu'il faut pour faire tourner l'API). Je l'ai communiqué à PCSOFT, mais sans le module externe, ils n'arrivent pas à reproduire le cas.

Je précise que sur un PC en Windows 7 Pro, cela fonctionne tout à fait correctement, et que le même programme compilé en WD21 fonctionne aussi sur le serveur 2012R2..... c'est vraiment la combinaison API,WD22 et 2012R2 qui pose problème.

Je voudrais savoir si quelqu'un aurait rencontré un problème similaire, dans une configuration identique: à Savoir un programme en WD22, utilisant une API sur un serveur Windows 2012R2?

Pour info, j'ai dû prendre une assistance directe, pour que l'on essaie de déboguer le problème.

Cordialement
Olivier.

--
Olivier Heckel
Posté le 22 mai 2017 - 21:17
Bonjour Olivier,
dans tout ce que tu décris, une chose m'inquiète:

Début de semaine dernière, la mise à jour étant terminée, j'ai donc
compilé le programme (en 64bits) et l'ai installé sur le serveur.


64 bits!!!!

as tu essayé en 32 bits ?

Si non, essaye, parceque si ton api/dll est en 32 bits, elle ne pourra
pas être appelée par une appli en 64 bits, et comme tu ne précise ce 64
bits que de ce coté la...

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com
Membre enregistré
88 messages
Popularité : +2 (2 votes)
Posté le 24 mai 2017 - 17:00
bonjour Fabrice,
Désolé je n'avais pas été notifié de ta réponse....
En fait l'API est livrée avec les DLL 32 et 64 bits. la compilation est faite en installation combinée 32/64.
A l’exécution du programme, que ce soit en 32 ou 64 bits (en fonction du paramètre EnMode64bits()), je charge soit la DLL 32 soit la DLL 64.
Donc je pense avoir la totalité de la chaine en 64.

Encore une fois, tout fonctionne très correctement une fois compilé en WD21, et la même chose ne fonctionne pas une fois compilé en WD22, SUR UN SERVEUR WINDOWS 2012R2.
Sur mon PC de développement (64bits), les 2 versions WD21 et WD22 fonctionnent correctement.
Membre enregistré
948 messages
Popularité : +30 (92 votes)
Posté le 25 mai 2017 - 02:22
Coucou,

sa vient pas de DEDITEC ?

--
Charly CanDo.
Forg en Nouvelle-Zélande ;-) - In üs we trust