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 275
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 275
    Points : 1 992
    Points
    1 992
    Par défaut
    Montre le code de ta DLL et comment tu l'appelles sous Windev
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  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 275
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 275
    Points : 1 992
    Points
    1 992
    Par défaut
    ChargeDLL te charge la DLL en mémoire. Maintenant, il faut appeler les fonctions via AppelDLL32.
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  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 275
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 275
    Points : 1 992
    Points
    1 992
    Par défaut
    Essaye de tester en faisant une DLL plus simple :
    http://www.eyrolles.com/Chapitres/9782212111439/19.pdf
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  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 275
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 275
    Points : 1 992
    Points
    1 992
    Par défaut
    Il faut te renseigner / chercher dans la section Delphi.
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  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 937
    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 937
    Points : 59 417
    Points
    59 417
    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
    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]

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