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

API, COM et SDKs Delphi Discussion :

[Delphi] Application 16/32 bits sous Delphi 2


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre actif Avatar de Cereal123
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 414
    Points : 214
    Points
    214
    Par défaut [Delphi] Application 16/32 bits sous Delphi 2
    Bonjour,

    Je viens d'hériter d'un *vieux* projet écrit en Delphi 2.0 et faisant des accès au port COM via les fonctions OpenComm, CloseComm,...
    D'après ce que j'ai pu lire dans la doc Delphi, ces appels sont des appels à des API 16bits, qui ont été remplacés depuis belle lurette par des fonctions 32bits tels que OpenFile, CloseFile,...
    Evidemment, quand je veux compiler ce projet sous Windows NT/2000, ces appels ne passent pas.

    Existe t-il dans Delphi 2 (ou 4) un moyen de générer une application 16 bits, ie qui fait appel aux API 16 bits des versions précédentes de Windows. Une option de compilation cachée quelque part ?

    Merci d'avance !

  2. #2
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Points : 638
    Points
    638
    Par défaut
    il me semble que le CD ROM Delphi 2 comportait 2 versions, l'une 16 bits
    à charger si vous étiez en windows 3.11, l'autre 32 bits si vous étiez
    en W9X

    mais les 2 versions ne cohabitent pas
    -------------------------------------
    D4 est lui purement 32 bits mais son CD comporte un répertoire D2 16 bits
    mais même remarque que précédemment

  3. #3
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Tu devrais peut-être regarder du côté de BPW, qui est un compilateur 16 bits. Sinon Il faudrait peut-être demander à Alcatîz son unité de choix dynamique de version : cette unité permet de choisir automatiquement la version d'une fonction à appeler (16 ou 32 bits), mais je pense que son auteur en dira plus que moi !

    a+

  4. #4
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Si ces API ne sont pas disponibles sous 2000, c'est qu'elles ont été supprimées car elles offraient une source d'instabilité. Inutle donc de chercher dans cette voie là.

    Il faut au contraire faire migrer le code vers du 32 bits, donc se pencher sur la gestion des ports COM avec le SDK Win32 : il faut utiliser CreateFile puis SetupComm etc...

    Tu peux regarder à cette adresse : http://www.commlinx.com.au/delphi_comms.htm.

    A+

  5. #5
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 946
    Points : 59 467
    Points
    59 467
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    MSDN confirme tout-à-fait ce que HDD34 dit : la famille des fonctions OpenComm n'est plus supportée par l'API 32 bits.
    http://support.microsoft.com/default...kb;en-us;94990

    Compiler ton code en 32 bits et exécuter ces fonctions 16 bits est techniquement possible mais c'est difficile à réaliser.

    Compiler ton code en 16 bits demanderait un minimum d'efforts et ça devrait tourner sans problème (grâce à la couche WOWExec). Mais tu n'auras en définitive qu'une appli 16 bits.

    Bref, à ta place j'essayerais de compiler en full-32 bits et donc d'utiliser les fonctions que te conseille HDD34.

    Et je remercie Wormful_Sickfoot de me faire ainsi de la publicité ! Que je ne mérite pas vraiment, d'ailleurs, car mon unité hybride 16/32 bits permet seulement de faire tourner des fonctions 32 bits dans une appli 16 bits.

    Bonne prog !

  6. #6
    Membre actif Avatar de Cereal123
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 414
    Points : 214
    Points
    214
    Par défaut Merci
    N'ayant que quelques libellés à toucher dans cette application, je voudrais éviter un portage 32bits. J'ai effectivement trouvé la version 16bits sur le CD de Delphi 2 .

    Alcatiz écrivait
    Compiler ton code en 16 bits demanderait un minimum d'efforts et ça devrait tourner sans problème (grâce à la couche WOWExec)...
    Si je ne veux pas faire de portage, quelle solution ai-je à part installer un Windows 3.11 et faire ma modification en mode 16bits ?

  7. #7
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 946
    Points : 59 467
    Points
    59 467
    Billets dans le blog
    2
    Par défaut
    Tu peux sans problème compiler ton programme en 16 bits avec la version 16 bits de Delphi même sous un OS 32 bits. Pas besoin de Windows 3.11.

  8. #8
    Membre actif Avatar de Cereal123
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 414
    Points : 214
    Points
    214
    Par défaut Ca marche!
    Bonne remarque Alcatîz !
    J'ai pu installer Delphi 16 sur un poste Windows XP et je vais maintenant faire mes modifications.
    Merci à tous de votre aide et bon week-end. 8)

  9. #9
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 104
    Points
    19 104
    Par défaut
    Citation Envoyé par HRS
    mais les 2 versions ne cohabitent pas
    Si elles cohabitent très bien, il faut juste installer delphi 1 ( version 16 bits livrée avec Delph 2 ) avant Delphi 2.

    Delphi 1, cohabite aussi avec Delphi 3,4,5,6,7,8 sans pb...

    Par contre pour en revenir à la question de base. Si ton appli compile bien avec D16, c'est qu'elle était déjà sous D16 et non pas Delphi 2. SInon tu aurais eu une foule de message d'erreurs.

  10. #10
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Euh, par D16 je pense que Nono veut parler de Delphi 1 16 bits. Et je confirme quand au fait que D1 cohabite très bien avec ses confrères (j'en ai la preuve "vivante" dur mon disque dur).

    Par contre, pas sûr que l'appli de base ait été conçue avec D1 à la base. Si la personne qui l'a programmée n'a pas utilisée de nouveaux composants ou les nouvelles fonctionnalités du langage offerte par D1, il ne doit pas y avoir de soucis, car Borland a dû garder une compatibilité au niveau des fichiers DFM entre les 2 versions. Pour le reste, ça doit fonctionner.

    Le seul "truc" qui pourrait coincer se situe au niveau de l'unité Windows intégrée depuis D2, et qui auparavant été scindée sous 2 unités WinTypes et WinProcs. Mais il est possible que le programmeur précédant, par habitude, ait utilisé WinProcs et WinTypes, D2 se chargeant seul de la substitution des 2 unités.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/02/2009, 17h56
  2. Réponses: 1
    Dernier message: 22/02/2009, 12h53
  3. application developpée sous delphi tres lente
    Par lokazouzou dans le forum Langage
    Réponses: 5
    Dernier message: 29/08/2008, 20h46
  4. Réponses: 3
    Dernier message: 30/03/2008, 21h50
  5. creation une application Dos sous delphi!!
    Par sofiane44 dans le forum EDI
    Réponses: 3
    Dernier message: 26/12/2005, 16h35

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