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

Turbo Pascal Discussion :

[BPW] Dialogues communs Windows 32 bits


Sujet :

Turbo Pascal

  1. #21
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Dis moi wormful_sickfoot,

    Le seul avantage des OBJ est d'intégrer les fonctions dans l'EXE, ou bien il y en a d'autres?
    Si tu connais, quelles sont les différences entre OBJ et DLL, à part que l'OBJ est dans l'EXE?

    Alcatiz: Si tu as résolu ton problème, ça serait sympa de ta part de me tenir au courant! J'ai bien trop souvent remarqué que dès que les gens ont leur solution, on ne les entend plus! Personnellement, je touve ça pas très respectueux comme attitude!

    à+

  2. #22
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 028
    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 : 8 028
    Billets dans le blog
    2
    Par défaut
    Salut à tous !

    Eh bien non, je n'ai pas encore de solution définitive.

    Au sujet d'un .obj, le code a DEJA été compilé et c'est à l'EDITEUR DE LIENS de BPW de l'inclure dans l'exe. Je penche nettement pour cette solution, quoique j'ai quelques doutes quant-à l'inclusion de code 32 bits dans mon programme.

    Malheureusement, ma vie de fou me laisse bien peu de temps. Donc... patience pour la suite des événements !

    Merci pour votre soutien !
    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]

  3. #23
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Au cas où BP7 serait encore dans tes projets...

    J'ai retrouvé l'unité dont je parlais : en réalité, le nom du composant est TFile32, trouvable sur www.programmersheaven.com.

    Dans le ZIP, File32.zip, tu trouveras l'unité nomée Call32NT, de Christian Ghisler.

    Ensuite, il te suffit de chercher la syntaxe, et la DLL contenant la fonction désirée, GetOpenFileNameA, DLL Comdlg32.dll dans ton cas.

    Il te suffit ensuite de déclarer au besoin les différents type nécessaire, là, TOpenFileNameA. Je te le donne :

    Ensuite, reste à déclarer ta fonction...
    Tu vas voir, c'est assez...complexe dirons-nous !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    unit Comdlg32;
     
    interface
     
    uses
      Call32NT;
     
    type
      UINT = Longint;
      DWORD = Longint;
      HINST = Longint;
      HWND = Longint;
     
    type
      POpenFilename = ^TOpenFilename;
      TOpenFileName = packed record
        lStructSize: DWORD;
        hWndOwner: HWND;
        hInstance: HINST;
        lpstrFilter: PChar;
        lpstrCustomFilter: PChar;
        nMaxCustFilter: DWORD;
        nFilterIndex: DWORD;
        lpstrFile: PChar;
        nMaxFile: DWORD;
        lpstrFileTitle: PChar;
        nMaxFileTitle: DWORD;
        lpstrInitialDir: PChar;
        lpstrTitle: PChar;
        Flags: DWORD;
        nFileOffset: Word;
        nFileExtension: Word;
        lpstrDefExt: PChar;
        lCustData: Longint;
        lpfnHook: function(Wnd: HWND; Msg: UINT; wParam: Longint; lParam: Longint): UINT;
        lpTemplateName: PChar;
    end;
     
     
    function GetOpenFileName(var OpenFile: TOpenFileName): Longint;
     
    implementation
     
    var
      W32GetOpenFileNameA: function(var OpenFile: TOpenFileName; id: Longint): Longint;
     
    var
      id_W32GetOpenFileNameA: Longint;
     
     
    function GetOpenFileName(var OpenFile: TOpenFileName): Longint;
    begin
    GetOpenFileName := W32GetOpenFileNameA(OpenFile, id_W32GetOpenFileNameA);
    end;
     
    begin
    @W32GetOpenFileNameA := @Call32;
    id_W32GetOpenFileNameA := Declare32('GetOpenFileNameA', 'comdlg32', 'p');
     
    if Call32NTError then Halt(1);
    end.
    Je ne suis pas sûr que ça fonctionne, alors donne nous des nouvelles !

    A+

  4. #24
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Appeler des dll 32-bits depuis un un programme 16-bits Delphi / BPW.
    Cette unité permet d'appeller des fonctions 32-bits de Windows 95 et Windows Nt
    depuis vos applications 16-bits Delphi ou Turbo Pascal

    http://site.voila.fr/subut/data3/call32nt.zip (23 Ko)

    Merci Pascail pour la traduction, j'étais un peu préssé ce matin!
    à+
    ________________________________________________
    Pensez à mettre le tag [résolu] à vos messages résolus!

  5. #25
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 466
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    Par défaut
    On peut donc inclure du code 32 bits dans un code 16 bits, le principe des fichiers .obj est toujours viable, mais appremment le système des DLL a été adopté à l'unanimité ...
    a+

  6. #26
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Et le programme que j'ai proposé utilise l'unité Call32NT...
    Ca fait un moment que j'en parle de celle-là.

    A+

  7. #27
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 028
    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 : 8 028
    Billets dans le blog
    2
    Par défaut
    Voici les nouvelles du front :

    Les premiers essais se soldent par un crash de Windows 98. La phase de débogage risque d'être longue... Mais je ne m'avoue pas facilement vaincu !

    Heureusement pour moi, ce forum est fréquenté par des pros. Il m'aurait fallu des mois entiers pour me dépatouiller de mon problème. Merci de nous dispenser un peu de votre science !
    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]

  8. #28
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 028
    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 : 8 028
    Billets dans le blog
    2
    Par défaut
    Mais ça maaaarche !

    Il m'a fallu du temps pour comprendre la technique utilisée dans l'unité Call32NT. Après moult plantages, je me suis rendu compte qu'il fallait convertir les adresses pChar des champs de la structure tOpenFileName à l'aide de la fonction GetVDMPointer32W.

    J'avoue en ignorer la raison profonde, surtout que cela n'est pas nécessaire pour les routines 32 bits de gestion de fichiers (FindFirst, etc) ni pour d'autres dialogues communs comme ChooseColor.

    Je vous remercie en tout cas du fond du coeur : je pense bien que je ne serais jamais parvenu tout seul à trouver une telle solution.

    Vous êtes très forts !!!

    A bientôt, j'espère.
    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]

  9. #29
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Et bien de rien !

    Ravi de pouvoir servir de temps en temps...

    A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Quel est la diff entre windows 32 bits et 64 bits
    Par pierrot10 dans le forum Windows XP
    Réponses: 4
    Dernier message: 15/08/2006, 15h42
  2. Windows update: Bits ne démarre pas.
    Par volontier dans le forum Windows XP
    Réponses: 1
    Dernier message: 21/07/2006, 12h03
  3. Communication windows-linux
    Par progima dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 08/12/2005, 17h31
  4. Message erreur Windows 16 bits
    Par francis m dans le forum Windows XP
    Réponses: 2
    Dernier message: 24/04/2005, 16h29
  5. [BPW]Dialogues non modaux exécutés depuis un autre dialogue
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 07/12/2003, 11h14

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