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

Langage Delphi Discussion :

Incompatibilité avec XP application figée


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 16
    Points
    16
    Par défaut Incompatibilité avec XP application figée
    Bonjour,

    1 semaine que je galère pour rendre compatibles sous XP des applications qui tournaient sans pb sous W2k ou W98SE, et développées en Delphi5.

    Ces applications utilisent différentes Dll développées ici aussi en interne. Ces app refusent de démarrer sous XP, aucun message, aucune erreur, elles 'freezent' tout simplement dès le lancement. Je reprends ces développement avec Delphi7 sous XP, histoire de recréer ces exécutables sur les OS de destination, mais je ne parviens pas à cerner l'origine du pb j(ai positionné un max de points d'arret mais apparemment, l'exécution n'arrive même pas jusque là, donc j'en concluerais à un pb de gestion de mémoire. Les applis utilisent 'Sharemem' en première position dans les Uses des projets. J'ai également tenté de remplacer Sharemem par FastSharemem mais sans meilleur résultat. Je voudrais au moins comprendre le pb avant de trouver une solution... Je suis vraiment en galère, tout devant migrer vers XP dans le mois qui vient.

    Help....... Merci

    Hervé

  2. #2
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    as tu essayé de faire un clic droit propriété sur ton .exe et le faire tourner en mode compatiblité win98 ?

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    Oui ! Toujours sans résultats....

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    question..
    Que font les dll maison exactement? est-ce qu'il y aurait des hooks?

    une piste...
    J'ai déjà eu des problèmes en important des API Windows via leur numéro
    et non avec leurs nom... de Win2k à XP, la fonction changeait de numéro
    alors ça donne de drôle de chose tu peux imaginer...peut-être même freeze
    si la fonction appelé en réalité ne contient pas du tout le même genre de
    paramètre...

    Exemple de mon cas vécu ici:

    http://www.developpez.net/forums/m1353454-7/
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    C'est une bonne piste. Effectivement il y a des hook, comme ce n'est pas moi qui aie développé toutes les dll, je ne les connais pas toutes par coeur. Je vais vérifier cette piste, et je te tiens au courant. Merci Bon Week-end

  6. #6
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 735
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 735
    Points : 13 242
    Points
    13 242
    Par défaut
    Attention aussi aux variables non initialisées qui prennaient une valeurs par défaut sous 2000 (pointer=nil, integer=0, etc.) mais pas forcement sous XP ou 2003.

  7. #7
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 667
    Points : 6 996
    Points
    6 996
    Par défaut
    Citation Envoyé par Gremlins13 Voir le message
    Les applis utilisent 'Sharemem' en première position dans les Uses des projets. J'ai également tenté de remplacer Sharemem par FastSharemem mais sans meilleur résultat. ...
    Je suis sous XP, et je n'ai jamais pu faire fonctionner mes DLL avec ces bibliothèques. Depuis que je fais sans, je n'ai plus de problème. Mais, j'ai dû me rabattre sur des types plus Windows, comme les PChar ...
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  8. #8
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    Je vais déjà passer mon lundi à faire toutes ces vérifs. Concernant le passage des variables avec des pchar, c'est certain que c'est la meilleure solution, mais vu le nombre de fonctions et de main développés je préfèrerais trouver une solution autre que de me retaper toutes ces applications dont je ne suis pas forcément le créateur... je vous tiens tous au courant merci

  9. #9
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 735
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 735
    Points : 13 242
    Points
    13 242
    Par défaut
    Les ShareMem ne fonctionneront de toutes façon jamais avec un hook (DLL chargée dans un autre processus).

    Et pour info, les fichiers mappés qui étaient une façon classique d'échanger des données entre la DLL contenant le hook et l'application ne fonctionne plus sous Vista si le niveau d'isolation des applications est différent
    (Exemple: IE si le UAC et le mode protégé sont activés. Le résultat sera simplement un freeze de IE)

  10. #10
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Comme dit ici, ne cherchez pas, il ne s'agit pas des applications qui freezent (promis jurés) mais plutôt les dll utilisées qui freezent vos application.
    C'est en effet très probablement un problême de modèle mémoire et l'utilisation de hooks.
    Bref, vous n'avez plus qu'a réécrire vos dll ou vous en passer.
    Bidouilleuse Delphi

  11. #11
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    Ca confirme bien tout ce que j'ai remarqué depuis j'essaie de debugger tout ça. Je savais bien que c'était les Dll qui plantaient au chargement. Alors pour l'instant, je vais me passer des Dlls que je vais 'démantibuler', récupérer toutes les unités qui les composent, les intégrer dans un répertoire commun et les inclures dans les applications une par une , Codes alourdis, ralentis surement, mais pour l'instant j'ai pas le choix.... enfin merci pour toutes ces réponses.....

Discussions similaires

  1. [C#] [.NET CF] des fichiers de données avec l'application
    Par safisoft13 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/06/2005, 09h30
  2. Réponses: 4
    Dernier message: 25/04/2005, 19h36
  3. [Son] Faire des bruits avec une application java
    Par mammistegon dans le forum Multimédia
    Réponses: 6
    Dernier message: 22/01/2005, 17h17
  4. Fiche Login avec une application MDI
    Par Andry dans le forum Composants VCL
    Réponses: 6
    Dernier message: 13/09/2004, 11h46
  5. [JBOSS] [Struts] Problème avec une application
    Par Tiercel dans le forum Wildfly/JBoss
    Réponses: 5
    Dernier message: 13/07/2004, 13h50

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