DLL freeze avec GetWindowText....pitié...ca me rend dingue..

Résolu
davidfdm2002 Messages postés 14 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 21 mai 2006 - 20 mai 2006 à 21:56
davidfdm2002 Messages postés 14 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 21 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.
 

1 réponse

davidfdm2002 Messages postés 14 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 21 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
3
Rejoignez-nous