IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Executable incompatible 32bit/64bit


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut Executable incompatible 32bit/64bit
    Bonjour,
    j'au une appli compilée par BCB2010 sous Window7(32bit). L'exécutable fonctionne correctement sous tous Windows 32bit.
    Quand cet exécutable est utilisé sous Windows 7 (64bit), il fonctionne, mais certains composants (GroupBox, Chart, RadioGroup, etc) dand une form sont mal-placés.
    Est-ce que quelqu'un a rencontré ce type de phénomène?
    Merci d'avance
    Xavier

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut Xavier
    Tu peut essayer soit de recompiler ton exe sous Window7
    ou
    Sur l'icon de l'exe faire un click droit choisir proprietes dans la boite de dialogue l'onglet compatibilite clicker sur modifier les parametres pour tous les utilisateurs choisir le mode compatibilite avec lequel l'exe tournait et eventuellement cocher executer ce programme en tant qu'administrateur

  3. #3
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut
    Merci Blondelle
    j'ai essayé la solution la plus simple: modifier la propriété de EXE, mais il ne marche pas sur W7: certains composants toujours malplacés.

    J'essaie de trouver un PC avec W7 64bits pour recompiler l'appli.
    Cordialement
    Xavier

  4. #4
    Membre très actif Avatar de Argol_Medusa
    Homme Profil pro
    Ingénieur Radiofréquences
    Inscrit en
    Août 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Radiofréquences
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 208
    Par défaut
    Bonjour Xavier,

    Ton problème peut avoir plusieurs origines possibles en fait.
    Il se peut que ce ne soit pas lié au code mais à la gestion de l'affichage de l'OS.

    Une piste possible par exemple (et assez vicieuse pour la trouver celle-là) concerne le Panneau de configuration => Apparence et personnalisation => Affichage

    tu peux choisir entre petite, moyenne ou grande concernant la taille de l'écriture (100%, 125% 150%)

    Je ne sais pas pourquoi mais ce paramètre sous une config windows 7 (x64) provoque le décalage des composants parfois.
    Genre un TImage->Left=xxx se décale à l'intérieur de la TForm ( ou peut-etre le TImage->Width qui s'agrandit, je ne sais plus trop de tête).

    Je n'ai pas analysé le phénomène plus que ça, j'ai remis à 100% quand ça m'est arrivé faute de temps, mais si la recompilation directe sous windows 7 que Blondelle te conseille ne donne pas de résultat, vérifie aussi ce point, on ne sait jamais.

    Edit : j'avais aussi le builder 2010 lorsque j'avais observé ce phénomène

  5. #5
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut
    Merci Argol_Medusa
    J'ai essayé les affichage windows 100%, 125% et 150%, sans effet sur la déorganisation des positions de mes composants. Les Height et Width sont OK, mais les Top and Left ne sont plus corrects. J'ai l'impression que les delta valeurs sont ajoutées sur certains composants par Windows.
    Cordialement
    Xavier

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Juste une idee comme cela la resolution est elle la meme sur les differents poste sur lesquelles tu a fait tes essais

  7. #7
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut
    Bonne idée! j'ai essayé dans un PC de collègue, sans les anomalies d'affichage!
    Nous avons testé différentes résolutions + combinaisons d'écran, pas de bon résultat sur mon PC
    Je continue à chercher

  8. #8
    Membre très actif Avatar de Argol_Medusa
    Homme Profil pro
    Ingénieur Radiofréquences
    Inscrit en
    Août 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Radiofréquences
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 208
    Par défaut
    Peux-tu nous montrer un screenshot bon/mauvais?

  9. #9
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut
    Voici ceux dans le fichier joint
    Bon et Mauvais.
    J'ai l'impression que les compposants mal-positionnés sont tous ceux dont les Left et Top ont été imposés par moi via RadioGroup1->Top = 120; etc.
    Merci d'avance
    Xavier
    Fichiers attachés Fichiers attachés

  10. #10
    Membre très actif Avatar de Argol_Medusa
    Homme Profil pro
    Ingénieur Radiofréquences
    Inscrit en
    Août 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Radiofréquences
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 208
    Par défaut
    En effet ton composant "source" conserve sa position alors que le "related schema" et "information" se décalent en ->Top et en ->Left, les Tlabels sont inchangés.

    Je l'avais encore jamais vu celle-là

    - Est-ce que tu as modifié les propriétés "align" de tes composants ( sont-elles en none ou en custom?) ou autre propriétés pas couramment utilisées?

    - Le PC qui pose problème a-t-il un skin windows particulier ?

    - Si je prends la fenêtre ou tu as le graph des sinusoïdales, elle doit normalement être collée à la fenêtre information : peux-tu essayer de faire un :

    FenetreInformation->Left = waveform->Left+waveForm->Width;
    au lieu de fixer directement le left en pixel.

    Histoire de voir s'il détecte déjà en relatif "composants entre eux" ça donnera une indication.

  11. #11
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut
    Voila, j'ai passé encore des heures pour chercher, un petit pas en avance, mais pas encore trouver une solution.
    J'ai compilé mon appli toujours dans W7 (x32) mais j'ai ajouté un bouton de test pour afficher les positions (pixel) de certains composants. Les valeurs dans les parenthèses sont celles dans les propriétés et les 2ieme valeurs sont obtenu lors du click de mon bouton ajouté pour afficher les valeurs Left, Top et Width de certains composants. Voici les résultats (2 PC sont quasi idem (DELL Precision M4600, mais avec pas de même date d'achat):


    TEST dans un PC W7(x64) avec affichage OK:
    Edit1->Left(221) = 229
    Edit1->Top(53) = 53
    Edit1->Width(125) = 125
    CheckBox4->Left(357) = 365
    GroupBox5->Left(624) = 632
    GroupBox5->Width(377) = 377
    PageControl3->Left(410) = 418
    PageControl3->Top(272) = 272

    TEST dans un PC W7(x64t) avec affichage Mauvais:
    Edit1->Left(221) = 272
    Edit1->Top(53) = 65
    Edit1->Width(125) = 154
    CheckBox4->Left(357) = 439
    GroupBox5->Left(624) = 768
    GroupBox5->Width(377) = 464
    PageControl3->Left(410) = 505
    PageControl3->Top(272) = 335


    Constat:
    Les valeurs en pixel comme Left, Top, Width sont toutes modifiées par Windows (32bit ou 64bit). Si ces valeurs sont fixées avant la compilation, il seront modifiées proportionnellement lors de l'exécution, pas de problème pour affichage. Si on modifie ces valeurs par le programme, là, il y a un mauvais affichage sur certain système 64bit.

    Argol_Medusa: J'ai testé ta méthode pour associer mes composants aux positions d'un bon composant (par exemple, Boutin Valid), tout va bien dans ce cas). Mais il y a encore un problème: j'ai également modifié par programme des valeurs Width de certains composants.

    Il parait qu'il existe un coefficient de conversion quelque part imposé par windows ou système d'affichage!

  12. #12
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Bizarre ce comportement
    Verifie les proprietes d'ancrage (Anchors) et AutoSize des differents composants poses sur ta Form

  13. #13
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut
    J'ai l'impression qu'il ne faut pas toucher les valeurs (Left, Top, Width, etc) par programme car elles sont toutes réajustifiées par Windows de mon PC.
    Si c'est la cas, il faut trouver alors les coefficients de conversion en X et Y!

  14. #14
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut
    Pour faire un test, j'ai créé un nouveau projet sous BCB2010: Il contient 3 composants. Lors de l'exécution, j'ai affiché dans un memo les valeurs Width, Top, Left via un bouton. Les valeurs dans les parenthèses sont celles dans les propriétés et les 2ieme valeurs sont obtenues lors du click de mon bouton pour afficher dans le memo:

    Compilé et exécuté sous W7 32bit, affichage: 1280 * 800
    TEST:
    Panel1->Left(100) = 100
    Panel1->Top(50) = 50
    Panel1->Height(100) = 100
    Panel1->Width(100) = 100
    Panel2->Left(200) = 200
    Panel2->Top(50) = 50
    Panel2->Height(100) = 100
    Panel2->Top(50) = 50
    Panel2->Width(100) = 100
    GroupBox1->Left(300) = 300
    GroupBox1->Width(200) = 200


    exécuté sous W7 64bit, affichage: 1920x1080
    TEST:
    Panel1->Left(100) = 131
    Panel1->Top(50) = 65
    Panel1->Height(100) = 131
    Panel1->Width(100) = 131
    Panel2->Left(200) = 262
    Panel2->Top(50) = 65
    Panel2->Height(100) = 131
    Panel2->Top(50) = 65
    Panel2->Width(100) = 130
    GroupBox1->Left(300) = 392
    GroupBox1->Width(200) = 262

    Il y a bien un coeffichent imposé par Windows quand il y a différentes résomutions d'affichage

  15. #15
    Membre très actif Avatar de Argol_Medusa
    Homme Profil pro
    Ingénieur Radiofréquences
    Inscrit en
    Août 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Radiofréquences
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 208
    Par défaut
    Ca fait pile 30% de plus, c'est un chiffre humain ça, c'est pas du machine.

    C'est exactement le chiffre que j'avais vu à l'oeil lorsque j'ai eu mon décalage, mais par contre de mon coté en allant dans Panneau de configuration\\Apparence et personnalisation\\Affichage et en repassant en 100% tout était rentré dans l'ordre.

    Fais quelques recherches dans les paramètres d'affichage il y a de fortes chance pour que la solution soit là-bas.
    ( Essaye de regarder du coté des pilotes d'affichage également ).
    Par contre ça me surprend que l'on ne puisse pas le forcer avec le BCB2010, as-tu regardé dans la doc des composants visuels ?


    Sinon, si tu n'as pas le temps de trop chercher, fais une détection et ajoute un coefficient d'ajustement empirique de -30% ( plus connu sous le nom de "coefficient anti-merdage quand on sait pas d'où ça vient" ).

  16. #16
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut
    Bonjour,
    j'ai effectué une série de tests pendant les fêtes de la semaine dernière en Chine, toujours pas de solution à mon problème d'affichage de mon applis. Cependant, j'ai obtenu quelques progrès:
    Sur 2 PC, cette anomalie d'affichage disparait si on passe l'affichage de PC à 100% (Merci Argol_Medusa). Mais sur 2 autres PC (idem mais 4 mois plus récents), quelque soit le mode d'affichage, l'anomalie existe toujours.

    Une solution provisoire que j'ai utilisée:
    Ne plus modifier les propriétés (Left, Top, Width, etc) par affecter les valeurs via programme, mais les modifier par positions relatives à des composants (suggérées par Argol_Medusa). Mon applis marche à peu près, je continue de chercher la vraie raison causant cette anomalie.
    Cordialement
    Xavier

Discussions similaires

  1. [10g] Problème ODBC 32bits/64bits
    Par Icchi dans le forum Connexions aux bases de données
    Réponses: 1
    Dernier message: 29/07/2013, 13h41
  2. Question Technique 32bits->64bits
    Par kurul1 dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/04/2011, 08h48
  3. Détection Windows 32bits/64bits
    Par Kaluza dans le forum C++
    Réponses: 6
    Dernier message: 08/08/2009, 19h07
  4. passer de 32bit à 64bit pour un projet visual c++
    Par restricteur dans le forum Visual C++
    Réponses: 1
    Dernier message: 19/09/2008, 15h05
  5. debian etch, passer de 32bit à 64bit
    Par djibril dans le forum Administration système
    Réponses: 19
    Dernier message: 25/01/2008, 23h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo