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

Windows Discussion :

Conversion de handles 16 bits <--> 32 bits


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Responsable Pascal, Lazarus et Assembleur


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

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 996
    Billets dans le blog
    2
    Par défaut Conversion de handles 16 bits <--> 32 bits
    Bonjour à tous et toutes !

    Je suis en train de créer un programme Windows hybride qui peut tourner indifféremment sur une plate-forme 16 bits ou 32 bits. Ainsi, si l'OS détecté est 32 bits, le programme travaille avec l'API 32 bits. Toutefois, le noyau du programme reste en 16 bits.

    Les fonctions de l'API 32 bits ne travaillent bien évidemment qu'avec des handles 32 bits, ce qui constitue mon problème : comment convertir un handle 16 bits en 32 bits ?

    Je n'ai pas de problème avec les handles de fenêtres (HWND), mais les autres... aïe aïe aïe ! Actuellement, je sèche sur un handle de contexte de périphérique (HDC) d'imprimante.

    Ni une recherche sur le forum ni sur Google n'ont pu m'apporter de réponse. Merci à ceux qui voudront bien se pencher sur la question !
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  2. #2
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Pourquoi tu fais pas tout en 32 bits, avec Win32s sous Win3.11 ça devrait aller non ?

  3. #3
    Responsable Pascal, Lazarus et Assembleur


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

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 996
    Billets dans le blog
    2
    Par défaut
    Ha !

    1. Parce que j'adore me casser la tête sur des challenges tels que celui-ci;
    2. Parce que je déteste rester sur une défaite;
    3. Parce que... euh... en Delphi, je ne suis vraiment pas encore au point.

    Et puis, je sais que c'est possible car j'en ai vu parler sur une ou l'autre des centaines de pages que j'ai visitées avec Google. Malheureusement, impossible de creuser ces liens (dont certains sont vieux de plusieurs années).

    Le principe de la conversion ne doit pas être beaucoup plus sorcier que la conversion des handles de fenêtres. Pour ce faire, j'exécute la fonction SetCapture 16 bits puis la fonction GetCapture 32 bits : j'ai mon handle de fenêtre 32 bits ! Mais pour les hDC, je sèche.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  4. #4
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Ben si tu as le handle de la fenêtre, tu peux avoir son DC...

  5. #5
    Responsable Pascal, Lazarus et Assembleur


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

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 996
    Billets dans le blog
    2
    Par défaut
    Oui, en effet.

    Mais c'est lorsqu'il s'agit par exemple d'un hDC retourné par une fonction API que je sèche. Par exemple, la structure d'interface avec PrintDlg peut retourner un handle de DC qui provient directement du driver d'imprimante.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  6. #6
    Membre émérite
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Par défaut
    Il semblerait que cela soit prévu : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/wowhandle32.asp

  7. #7
    Responsable Pascal, Lazarus et Assembleur


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

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 996
    Billets dans le blog
    2
    Par défaut
    Mais c'est bien sûr !

    De mon code 16 bits, je peux utiliser les thunks functions 16 bits pour charger les thunk functions 32 bits qui vont me convertir n'importe quel handle, dans les deux sens.

    Merci 1000 fois : c'est la solution à mon problème.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

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

Discussions similaires

  1. conversion image 8 bit en image 2 bit
    Par colorid dans le forum Langage
    Réponses: 4
    Dernier message: 17/10/2013, 18h26
  2. Conversion de binaires en tableau d'entiers 16 bits
    Par Donnie Darcko dans le forum Débuter
    Réponses: 4
    Dernier message: 24/03/2008, 13h29
  3. Conversion RGB 24-bits vers RGB 16-bits
    Par progfou dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 08/11/2007, 22h52
  4. windows XP 64 bits et application 16 bits
    Par JeanMarc_T2k dans le forum Windows XP
    Réponses: 2
    Dernier message: 21/11/2005, 11h00
  5. Convertir une image BMP 8 bits en BMP 24 bits
    Par SauCisS dans le forum Bibliothèques
    Réponses: 17
    Dernier message: 23/03/2005, 09h51

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