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
    Expert confirmé
    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 : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    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
    7 945
    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 945
    Points : 59 442
    Points
    59 442
    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 !

  3. #23
    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
    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
    Expert confirmé
    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 : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    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 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
    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 : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    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
    7 945
    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 945
    Points : 59 442
    Points
    59 442
    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 !

  8. #28
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 945
    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 945
    Points : 59 442
    Points
    59 442
    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.

  9. #29
    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
    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