Compatibilité XP > vista > Seven : problème avec Seven

Fermé
botelec Messages postés 38 Date d'inscription vendredi 20 juin 2003 Statut Membre Dernière intervention 11 septembre 2010 - 14 nov. 2009 à 15:43
olive0881 Messages postés 1 Date d'inscription jeudi 28 avril 2011 Statut Membre Dernière intervention 30 avril 2011 - 30 avril 2011 à 11:15
Bonjour à vous,

Depuis peu, j'ai fais les tests de compatibilité de mon logiciel sous win7 (Seven quoi).
Bref, mon logiciel, qu'il soit compilé sous D5 ou D7 (v1) à partir du système XP, vista ou encore Seven fonctionne correctement sous tout les OS (saufs sous Seven ).

J'ai bien entendu appliqué les nombreuses bizarreries du système que l'on peut retrouver sur les sites de prog (emplacement réservé, dossier virtuel, UAC etc.. ) mais, j'ai toujours le même problèmes:

Gel de mon application lorsque je lance un utilitaire de vérification de fichier.
Si encore ce Freeze ce produisait au même endroit ou au même moment, mais non c'est alléatoire et impossible de récupérer la moindre erreur, même avec un gestionnaire d'erreurs intégré à l'application.
Évidemment, aucun soucis sous Xp ou vista...

On pourrait 'normalement' en déduire que Seven à un problème mais je préfère dabord vérifier..
Avez-vous eu, des problèmes similaires ?
Merci

PS:
Bon, il n'y a pas le feu au lac, mais j'espère juste que ma petite question ne vas pas passé à la trappe, à cause de tous les
'Au secour, vous voulez pas travaillez à ma place?'
Cordialement, Mathieu.

10 réponses

Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
14 nov. 2009 à 17:13
« j'espère juste que ma petite question ne vas pas passé à la trappe »

Dans l'espoir d'un futur radieux et d'un chemin débarrassé de ses embûches pour moi aussi... J'espère aussi. :)))
0
botelec Messages postés 38 Date d'inscription vendredi 20 juin 2003 Statut Membre Dernière intervention 11 septembre 2010 1
16 nov. 2009 à 13:53
Personne n'as de problèmes de gel de son application sous Seven ou c'est trop tôt:
Vous n'avez peut-être pas encore testé vos applications sous ce système d'exploitation ?

Merci.
0
thoreycity Messages postés 13 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 19 novembre 2009
19 nov. 2009 à 07:15
Salut,

Il y a peut être une chose à verifier.
Moi j'ai rencontré un pb du meme genre.. Mon programme demandais une "élévation" ! Meme pour executer le prog dans delphi.. Je n'ai pas encore trouvé la soluce pour l'élévation..

J'ai remarqué également qu'on ne peut pas ecrire comme on veut sur c:\.
Par default le systeme empeche tout simplement la création du fichier.

Par contre, tu peux ecrire sur un fichier C:\Toto.txt si celui-ci existe deja.

J'avais pensé à encapsulé le code dans un try except

L'écriture du fichier étant réservé pour mon débugage, je ne me suis pas plus penché sur la question pour le moment.

bon courage,

Maxime
0
AGILOGMAIL Messages postés 5 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 15 mars 2010
23 nov. 2009 à 10:34
Salut

pour le moment nos tests sont tous positifs sous Seven, voire mieux que sous Vista.
en 64b idem, pas de soucis en vue pour l'instant.

à part mettre des points de debug dans un fichier toto.txt, je ne vois pas comment tu vas faire ...
attention aussi à ne pas généraliser. Il y a sans doute un truc dans ton pojet qui ne convient pas. Cela ne veut pas dire que tous tes projets vont se planter sous Seven.

JM

rien de sert de courir, il faut partir à point.
Certes, mais il faut partir.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
botelec Messages postés 38 Date d'inscription vendredi 20 juin 2003 Statut Membre Dernière intervention 11 septembre 2010 1
1 févr. 2010 à 11:29
merci pour vos réponses à tous,
Pour ce qui est de l'élévation des privilèges, Maxime, tu peux utiliser un fichier ressource à inclure dans ton projet.
Exemple;

{$R UAC.RES}

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">

<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>

</compatibility>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"/>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>

</dependentAssembly>
</dependency>

a enregistrer sous UAC.RES

en modifiant le 'level' tu dois pouvoir accéder directement au programme avec les privilèges administrateurs sans alerté L'UAC VISTA ou SEVEN.
0
botelec Messages postés 38 Date d'inscription vendredi 20 juin 2003 Statut Membre Dernière intervention 11 septembre 2010 1
1 févr. 2010 à 13:04
re-bonjour a tous et merci pour votre soutien.

Je reviens avec mon problème de compatibilité après différents tests :)
J'ai mieux localiser la source du problème, et je pense avoir identifié un vrai soucis avec les systèmes vista ou seven, enfin les systèmes arrivé après XP.

Il se trouve en effet que mes logiciels 'Client-Serveur' (gérés par thread) fonctionnent parfaitement sur l'ensemble des systèmes d'exploitation de chez Microsoft 32 ou 64.

Or a partir du moment ou, le nombre de coeur-processeur devient important, (4 dans mon cas) rien ne vas plus
après plusieurs tests il apparait que seul XP reste stable ! d'ou mon problème de 'gel' sur Seven et vista.
Sur les autres systèmes, il ne faut pas dépassé le dual-core sinon, des thread sont perdu
Alors pourquoi, j'en ai pas la moindre idée, mais le fait est que les thread ne répondent plus et ce, de manière complètement aléatoire.
(J'ai bien désactivé L'UAC pour être sûr de ne pas avoir des soucis avec et mis les droit administrateurs aux dossiers sur lesquels le logiciel travaille mais en fait, cela n'as rien avoir puisque mon logiciel fonctionne si le système est mono processeur quelque soit le système d'exploitation.)
Je ne dis pas que parce que mon logiciel ne fonctionne pas en multi-processeur s'est la faute à Microsoft, mais alors pourquoi seul XP y arrive..

Pour le vérifié j'ai bloqué le fonctionnement multi-coeur a partir du bios et la BINGO ça re-fonctionne sans problème quelque soit le SE ...
J'ai donc chercher à faire la même chose de manière logicielle ou a m'en approcher..
En déterminant l'affinité du processus principal de mon application au premier Coeur avec:
GetProcessAffinityMask et SetProcessAffinityMask (et GetThreadAffinityMask / SetThreadAffinityMask pour les threads).
Résultat; Fonctionnement Parfait lorsque je bloque l'application sur le premier processeur et que donc tout les thread enfants travaillent sur le premier coeur.
(Mais pour moi, bloquer l'application a un seul coeur n'est pas une solution, même si au vu des résultats la vitesse d'exécution est casi-identique et même meilleures parfois ...)
(Oups fallait pas en parler..)
Une autre solution existe aussi en 'bloquant' sur les deux premiers processeur et en demandant a Windows 'de bien vouloir faire travailler' les thread enfants créé, sur les deux premiers coeur du processeur. (Avec SetThreadIdealProcessor )

Je reformule donc ma question:

Avez-vous des problèmes avec vos applications multi-tâches sur les systèmes d'exploitation suivant XP? et ayant une architecture Multi-processeurs ?

Merci par avance pour vos réactions.
Mat.
0
cs_saib Messages postés 38 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 15 mars 2010
15 mars 2010 à 14:23
Salut,

J'ai également été confronté a un problème de figeage de mon appli lors de la mise en pause de threads sur des systèmes multiprocesseurs.
J'en suis arrivé, apparament comme toi, a la conclusion que la solution passait par le rapatriement du thread a mettre en pause sur le meme processeur que le thread principal de l'appli avant de le mettre en pause. C'est de la bidouille, mais bon, ca marche.
J'avais un peu plus creusé a l'époque, et ce problème se produisait aussi bien sous windows 2000, 2003 server, xp et vista. Apres de longues et fastidieuses recherches, j'était tombé sur un article (je ne le retrouve pas la maintenant tout de suite, j'ajouterais un lien si je le retrouve) sur le site msdn.com qui indiquait qu'il s'agissait d'un bug, non résolu (a l'époque du moins...)

Ceci étant, selon moi la mise en pause de threads et a proscrire, ou tout au moins a utiliser avec parcimonie et avec d'infinies précautions, et plutot dans un contexte de déboguage, car on ne maitrise pas toujours tous les appels d'api sous jacents, les verouillages de zones memoires lors des allocations memoire, les propagations d'exceptions en cours dans le thread, etc...
La suspension d'un thread arette simplement l'execution du code dans ce thread, sans tenir aucun compte des verouillages qui peuvent avoir été faits dans des api. Cela peut donc provoquer de gros problèmes d'instabilité de l'application, voire de la machine...
Il est toujours préférable d'utiliser des méthodes alternatives comme le WaitForSingleObject dans la boucle principale du thread par exemple.


En espérant avoir apporté des éléments de réponse...
Seb.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
15 mars 2010 à 18:41
saib utilisait probablement SuspendThread, qui est effectivement signalée comme dangereuse (Tout comme Terminatethread). Mais dans le cas de botelec, je ne pense pas que Synchronize appelle un truc aussi crade que SuspendThread. Synchronize est très certainement à base de section critique ou de mutex (-> WaitForSingleObject). Les sections critiques sont d'ailleurs à privilégié (Quand on travail dans un seul processus).
0
AGILOGMAIL Messages postés 5 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 15 mars 2010
15 mars 2010 à 18:55
Salut

moi j'ai des soucis sur Seven 64 :
les formats numériques et de dates sont tous en Anglais au lieu d'être en Français à l'exécution du programme : compilation Delphi7.
install Win32 dans Seven64.
j'ai tenté l'installation en mode Compatibilité XP ... c'est pareil.

je dois préciser que évidemment le Seven est Français et paramétré avec le point décimal et que les dates sont en jj/mm/aaaa ?? non ... vous l'aviez deviné.

une idée ?

rien de sert de courir, il faut partir à point.
Certes, mais il faut partir.
0
olive0881 Messages postés 1 Date d'inscription jeudi 28 avril 2011 Statut Membre Dernière intervention 30 avril 2011
30 avril 2011 à 11:15
bonjour a tous

petite question j arrive pas a installer le driver USB sur seven ? qq pourrais m aidé merci
0
Rejoignez-nous