davidfdm2002
Messages postés14Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention21 mai 2006
-
20 mai 2006 à 21:56
davidfdm2002
Messages postés14Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention21 mai 2006
-
21 mai 2006 à 01:10
J'ai une DLL Delphi faite pour JAVA ,initialement conçu avec Delphi 6.
Une fonction de la DLL permet de denombrer le nombre de fenetres portant un certain nom.
La dll compilé sous delphi 6 fonctionne bien dans mon programme java (JNI).
La meme DLL recompilé avec Delphi borland studio developer ne fonctionne que dans le thread principal de mon application java et pas dans les sous processus, cela a pour consequence de "freezer" la DLL et bloque le pogramme
Apres analyse du bug il semblerai que la fonction responsable soit getWindowText, mais impossible de savoir la cause...
Qu'est ce qui change entre Delphi 6 et cette nouvelle version ?
hA ET J'oubliais je fais des tests sous XP pro...
Voila , un grand merci a la personne qui me permettra de resoudre le probleme.
davidfdm2002
Messages postés14Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention21 mai 2006 21 mai 2006 à 01:10
Bon j'ai a moitié resolu le probleme et je tiens a le faire partager a ceux qui comme moi chercheront.
Il semblerait que la difference soit la façon de rechercher les fenetres (depuis un thread en plus...bref passons)
Dans ma recherche je faisais une recherche sur toutes les fenetres contenant la chaine cible dans le titre de la fenetre.
Hors il semblerait que certaines fenetres ne repondent pas et pire bloque la fonction. heureusement ces fenetres (il m'est pas trop possible de pousser plus avant mes recherches) ne sont pas celles que je recherche (fenetre web, et application) donc il me suffit de preciser le nom de la classe de fenetre et de faire le getWindowText pour celles ci uniquement, voillllllllllaaaaaaaaaaaaaaa.
Alors pourquoi ma dll fonctionne bien en delphi 6 et pas avec la nouvelle version de Delphi, ca reste un mystere....mais bon ca marche c'est le principal non ?
Mais bon si vous trouvez une explication