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

WinDev Discussion :

DLL en Delphi


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut DLL en Delphi
    Bjr,
    Je viens de crééer une DLL avec Delphi, qui fonctionne quant elle est appelée par un autre programme en Delphi.
    Par contre j'ai voulu la charger sous Windev 9, mission impossible, il ne trouve pas le module.
    J'ai essayé avec une DLL Windows et elle se charge. J'ai essayé avec une autre DLL de Delphi (Une que je n'avais pas crééer et Idem elle ne se charge pas. Ma question WINDEV et DELPHI sont ils ennemis ???

    Ou il a t il quelque chose que j'oublie de faire ! et oui ma premiere DLL.
    si quelqu'un a deja eu ce probleme !!!

  2. #2
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    Montre le code de ta DLL et comment tu l'appelles sous Windev

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut DLL en DelPHI et WINDEV
    L'exemple de la DLL non crééer par moi, et qui ne fonctionne pas non plus
    Code Projet
    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
     
    { Copyright © 2001 Delphi 6 Developer's Guide Xavier Pacheco
      and Steve Teixeira }
     
    { Lire dans le chapitre 6 la note importante
      concernant le gestionnaire DELPHIMM.DLL. }
    library CalendarLib;
     
    uses
      ShareMem,
      SysUtils,
      Classes,
      DLLFrm in 'DLLFrm.pas' {DLLForm};
     
    exports
      ShowCalendar;
     
    begin
    end.
    Code Unit

    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
     
    { Copyright © 2001 Delphi 6 Developer's Guide Xavier Pacheco
      and Steve Teixeira }
     
    unit DLLFrm;
     
    interface
     
    uses
      SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
      Forms, Dialogs, Grids, Calendar;
     
    type
     
      TDLLForm = class(TForm)
        calDllCalendar: TCalendar;
        procedure calDllCalendarDblClick(Sender: TObject);
      end;
     
    { Déclare la fonction exportée }
    function ShowCalendar(AHandle: THandle; ACaption: String): TDateTime; StdCall;
     
    implementation
    {$R *.DFM}
     
    function ShowCalendar(AHandle: THandle; ACaption: String): TDateTime;
    var
      DLLForm: TDllForm;
    begin
      // Copie l'identificateur de l'application dans l'objet TApplication de la DLL
      Application.Handle := AHandle;
      DLLForm := TDLLForm.Create(Application); 
      try
        DLLForm.Caption := ACaption;
        DLLForm.ShowModal;
        Result := DLLForm.calDLLCalendar.CalendarDate; // Récupère la date dans Result
      finally
        DLLForm.Free;
      end;
    end;
     
    procedure TDLLForm.calDllCalendarDblClick(Sender: TObject);
    begin
      Close;
    end;
     
    end.
    Dans le Programme Windev je veux la charger en memoire
    avec la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChargeDLL("CalendarLib.dll")
    Cette DLL ce strouve dans le même répertoire que le EXE.

    Merci a toi de m'aider

  4. #4
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    ChargeDLL te charge la DLL en mémoire. Maintenant, il faut appeler les fonctions via AppelDLL32.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut DLL en DelPHI et WINDEV
    oui mais ChargeDLL () refuse de me charger la DLL il me retourne 0
    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
     
    Erreur à la ligne 4 du traitement Clic sur Bouton1.
    Vous avez appelé la fonction AppelDLL32.
    Erreur au chargement de la DLL 'Calendarlib'
     
    Détail de l'erreur système :
     
    Le module spécifié est introuvable.
     (126)
     
     
    **********************************************
     
    Informations techniques
     
    Projet : Gestion d'image
     
    Dump de l'erreur du module <WD90VM.DLL> <9.01Cud>.
     
    - Appel WL :
    Traitement de <essai.Bouton1>, ligne <4>, thread <0>
    Fonction <AppelDLL32>, n° de syntaxe <0>
     
    - Niveau : erreur fatale (EL_FATAL)
     
    - Code erreur : 2802
     
    - Code erreur WD55 : 0
     
    - Code d'erreur système : 126
     
    - Message d'erreur système :
    Le module spécifié est introuvable.
     
     
    - Que s'est-il passé ?
    Erreur au chargement de la DLL 'Calendarlib'
     
    - Infos de debug :
    Fonction (0,18)
     
    - Infos attachées :
    EIT_DATEHEURE : 18/03/2005 12:32:36
    EIT_PILEWL :
      Clic sur Bouton1 (essai.Bouton1), ligne 4
     
    - Identifiant dans le .err : 2802
    - Vérifiez le nom de la DLL
    - Vérifiez que le DLL se trouve dans un chemin accessible au processus (consultez l'aide de ChargeDLL ).
    - Vérifiez qu'il s'agit d'une DLL 32 Bits valide sur cette plateforme
    - Cette DLL utilise peut-être d'autres DLL qui ne sont pas disponibles.
    ca c'est le message d'erreur
    Voila le Code d'une DLL qui n'est pas de moi et qui ne peut pas etre chargée également
    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
     
    Code Projet
    { Copyright © 2001 Delphi 6 Developer's Guide Xavier Pacheco
      and Steve Teixeira }
     
    { Lire dans le chapitre 6 la note importante
      concernant le gestionnaire DELPHIMM.DLL. }
    library CalendarLib;
     
    uses
      ShareMem,
      SysUtils,
      Classes,
      DLLFrm in 'DLLFrm.pas' {DLLForm};
     
    exports
      ShowCalendar;
     
    begin
    end.
    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
     
    Code Unit
    { Copyright © 2001 Delphi 6 Developer's Guide Xavier Pacheco
      and Steve Teixeira }
     
    unit DLLFrm;
     
    interface
     
    uses
      SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
      Forms, Dialogs, Grids, Calendar;
     
    type
     
      TDLLForm = class(TForm)
        calDllCalendar: TCalendar;
        procedure calDllCalendarDblClick(Sender: TObject);
      end;
     
    { Déclare la fonction exportée }
    function ShowCalendar(AHandle: THandle; ACaption: String): TDateTime; StdCall;
     
    implementation
    {$R *.DFM}
     
    function ShowCalendar(AHandle: THandle; ACaption: String): TDateTime;
    var
      DLLForm: TDllForm;
    begin
      // Copie l'identificateur de l'application dans l'objet TApplication de la DLL
      Application.Handle := AHandle;
      DLLForm := TDLLForm.Create(Application); 
      try
        DLLForm.Caption := ACaption;
        DLLForm.ShowModal;
        Result := DLLForm.calDLLCalendar.CalendarDate; // Récupère la date dans Result
      finally
        DLLForm.Free;
      end;
    end;
     
    procedure TDLLForm.calDllCalendarDblClick(Sender: TObject);
    begin
      Close;
    end;
     
    end.
    Cette DLL comme la mienne fonctionne avec DELPHI

    Merci a toi !

  6. #6
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    Essaye de tester en faisant une DLL plus simple :
    http://www.eyrolles.com/Chapitres/9782212111439/19.pdf

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut DLL en DelPHI et WINDEV
    oui Ok je vais essayer
    Je te tiens au courant

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut DLL en DelPHI et WINDEV
    Ouf, enfin un bon debut.

    Merci d'abord pour la doc. J'ai pris l'exemple du convertisseur Euro/franc

    J'ai compilé, oh joie je lance windev, clic et miracle la DLL est chargée mais maintenant fonctionne t elle.
    Là deçu le retour n'est pas bon, Le chiffre semble etre une instance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Chargedll("Convert.dll")
    Montant est un reel / Normalement correspond a DOUBLE Le type monnetaire n'est pas accepté par la DLL
    Resultat est un reel
    Montant =15.00 (Euro)
    Resultat=appelDLL32("Convert","ConvertFranc",Montant)
    Ou est l'erreur !
    J'ai revérifié le code de la DLL mais tous semble OK

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut DLL en DelPHI et WINDEV
    un petit Rgts quelle version de delphi as tu. Pour moi c'est la version 6 car gratuite. Existe t il une version 7 perssonel ou meme 8 j'ai cherché sur le site BORLAND mais je n'ai vu que la version 2005.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Delphi 7
    C'est encore moi et se sera tout pour ce soir
    J'ai vu sur le site de BORLAND le code d'activation pour delphi 2005 personnal alors il doit ou il a du exister !
    si tu as une adresse , DELPHI est trés intérressant quoi que un peu déroutant au début.

  11. #11
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    Il faut te renseigner / chercher dans la section Delphi.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Points : 8
    Points
    8
    Par défaut DLL en DelPHI et WINDEV
    Salut
    je vient de recevoir un Email de PCSOFT concernant les DLL en PASCAL
    pour que Windev puisse les utiliser avec APPELDLL32
    il faut respecter les caracteristiques suivantes


    - Type WinApi FAR PASCAL
    - Declaration de la function en export dans le .Def

    Pour moi le Type Winapi FAR PASCAL je ne sais pas a quoi cela correspond.

  13. #13
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 964
    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 964
    Points : 59 678
    Points
    59 678
    Billets dans le blog
    2
    Par défaut Re: DLL en DelPHI et WINDEV
    Bonjour !
    Citation Envoyé par MANDIN Claude
    Pour moi le Type Winapi FAR PASCAL je ne sais pas a quoi cela correspond.
    C'est expliqué ici : http://support.microsoft.com/default...kb;en-us;99487

Discussions similaires

  1. Dll avec delphi 7.0
    Par MedGIR dans le forum Langage
    Réponses: 3
    Dernier message: 08/09/2008, 10h52
  2. Réponses: 10
    Dernier message: 16/10/2007, 09h57
  3. Réponses: 2
    Dernier message: 26/06/2007, 17h46
  4. Appel d'une DLL en delphi en VB.net
    Par pytpyt dans le forum Windows Forms
    Réponses: 1
    Dernier message: 11/04/2007, 11h43
  5. Dll entre delphi et windev
    Par rhabib dans le forum Langage
    Réponses: 3
    Dernier message: 04/01/2006, 11h28

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