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

Langage Delphi Discussion :

[Delphi 2005 Architect] Liaison DLL avec mon exe


Sujet :

Langage Delphi

  1. #1
    Membre régulier Avatar de SkYsO
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 217
    Points : 122
    Points
    122
    Par défaut [Delphi 2005 Architect] Liaison DLL avec mon exe
    Salut à tous,

    j'ai récement acquéris la version architect trial de delphi 2005 et j'ai tenté un petit projet.

    Malheureusement je vois que je ne peux l'executer que sur ma plateform car il ne veut pas m'intégrer certaines dll dans mon exe genre :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Avertissement] Administration.dpr(78): W1005 L'unité 'Borland.Vcl.Windows' est propre à une plate-forme
    Me faut il acheter la version complète ?
    Cette fonctionnalité sera donc débloqué ?

    merci
    Blog de mon jeu L2D : http://xna-discovery.blogspot.com/
    Un Left 4 Dead Like en 2D vue de dessus ;p

  2. #2
    Membre actif Avatar de declencher
    Inscrit en
    Mai 2003
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 441
    Points : 251
    Points
    251
    Par défaut
    A tu vérifier dans les options du projet si tu avais bien "coché ou décoché" la case "compiler avec les paquets" ? (si c'est pareil que pour delphi 7).

  3. #3
    Membre régulier Avatar de SkYsO
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 217
    Points : 122
    Points
    122
    Par défaut
    Salut,

    Je ne vois pas ce genre de choix dans les options
    Blog de mon jeu L2D : http://xna-discovery.blogspot.com/
    Un Left 4 Dead Like en 2D vue de dessus ;p

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    C'est un Warning qui n'empêche pas la compilation du code mais t'informe; Le nom de l'unité indiquée est un espace de nom de la VCL Delphi .NET (une unité) et pas une DLL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unit Borland.Vcl.Windows platform;
    Extrait de l'aide en ligne
    La directive de conseil platform sur un symbole ou une unité indique que cet élément risque de ne pas exister ou que son implémentation peut varier considérablement sur les différentes plates-formes. La directive de conseil library sur un symbole ou une unité indique que le code risque de ne pas exister ou que l'implémentation peut varier considérablement sur les différentes architectures de bibliothèques.

    Les directives platform et library ne spécifient pas la plate-forme ni la bibliothèque. Si votre but consiste à écrire du code indépendant de la plate-forme, vous n'avez pas à savoir à quelle plate-forme un symbole est spécifique ; il suffit que le symbole soit marqué comme spécifique à une certaine plate-forme pour vous informer d'éventuels problèmes de portabilité.

  5. #5
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    question dans la question
    Avec .Net, ces différences de platformes ne devraient t elles pas être abolies ? ( Delphi.Net -> .Net donc seule dépendance à .Net ?? ).

  6. #6
    Membre régulier Avatar de SkYsO
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 217
    Points : 122
    Points
    122
    Par défaut
    Salut,

    ok pour le message mais donc pour que je puisse l'executer sur n'importe quelle autre machine je vais devoir aussi installer ce qui me manque ?

    Bref la solution est ?

    Car dans le menu ou je peux liée ces unités, l'option est en grisée...
    Blog de mon jeu L2D : http://xna-discovery.blogspot.com/
    Un Left 4 Dead Like en 2D vue de dessus ;p

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut ,
    Citation Envoyé par smyley
    Avec .Net, ces différences de platformes ne devraient t elles pas être abolies ? ( Delphi.Net -> .Net donc seule dépendance à .Net ?? ).
    Je ne vois pas pourquoi ? Justement son utilité est d'avertir le développeur que le code peut être spécifique à un environnment et pour Delphi (Linux,Win32 et .NET) entre les 2 derniers les possibilités du langage et des appels de classe différent.
    Mais tu pensais peut être au portage/partage de code de la VCL ?
    Et je n'ai peut être pas compris ta question, peux-tu la reformuler ?

    Citation Envoyé par SkYsO
    Bref la solution est ?
    Pas simple :-)
    Blague à part, indique nous les étapes qui t'ont ammené à ce message. A partir de là ce sera peut être plus simple de t'aider.

  8. #8
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par Laurent Dardenne
    Mais tu pensais peut être au portage/partage de code de la VCL ?
    Et je n'ai peut être pas compris ta question, peux-tu la reformuler ?
    Je me disais que dans Delphi 2005 , Delphi.Net était entièrement basé sur le CLR et que donc il n'utilisait pas directement Win32 et qu'il n'y avais plus qu'une seule spécificité de platforme : .NET

  9. #9
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par smyley
    Je me disais que dans Delphi 2005 , Delphi.Net était entièrement basé sur le CLR et que donc il n'utilisait pas directement Win32 et qu'il n'y avais plus qu'une seule spécificité de platforme : .NET
    Oui tout à fait mais là où Borland apporte qq chose c'est que tu peux avoir du code pour une plateforme (utilisation de la directive) et du code pour 2 ou 3 plate-formes (pas d'utilisation de la directive mais à la rigueur des directives de compilation conditionnelle).

    Je suis en train d'écrire un article sur les nouveautés du langage Delphi Win 32 sous BDS 2006 (Dexter) et je me rends compte +- tardivement que le code .NET et Win32 peut être commun sous Delphi, SAUF si tu utilises des spécificités de la plate-forme Win32 ou de la plate-forme .NET.
    Le système de réflexion .NET par exemple est différent de RTTI sous Win32, ici la directive platforme a du sens.

    Mais je peux trés bien utiliser la directive de conseil platforme pour du code Win32 si je code principalement pour .NET
    "T'as capté" le principe ?

  10. #10
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    oki

  11. #11
    Membre régulier Avatar de SkYsO
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 217
    Points : 122
    Points
    122
    Par défaut
    Citation Envoyé par Laurent Dardenne
    Salut ,
    Pas simple :-)
    Blague à part, indique nous les étapes qui t'ont ammené à ce message. A partir de là ce sera peut être plus simple de t'aider.
    Salut,

    Bon alors voici à peu près ma démarche :

    J'ai une application que je dois développer pour plusieurs clients. En ce moment je ne peux executer mon exe que sur ma machine de developpement car sinon il me sort une erreur et me jette.

    Et je voudrais pouvoir installer mon exe tout simplement sur d'autre machine qui bien sur auront le framework.

    Penses tu que le problème vient de ces warning ?



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [Avertissement] Modele.dpr(65): W1005 L'unité 'Borland.Vcl.Windows' est propre à une plate-forme
    [Avertissement] Modele.dpr(65): W1005 L'unité 'Borland.Vcl.ShellAPI' est propre à une plate-forme
    [Avertissement] Modele.dpr(65): W1005 L'unité 'Borland.Vcl.Messages' est propre à une plate-forme
    [Avertissement] Modele.dpr(65): W1005 L'unité 'Borland.Vcl.Graphics' est propre à une plate-forme
    [Avertissement] Modele.dpr(65): W1005 L'unité 'Borland.Vcl.Controls' est propre à une plate-forme
    [Avertissement] Modele.dpr(65): W1005 L'unité 'Borland.Vcl.Forms' est propre à une plate-forme
    [Avertissement] Modele.dpr(65): W1005 L'unité 'Borland.Vcl.Dialogs' est propre à une plate-forme
    [Avertissement] ProprieteTE.pas(8): W1005 L'unité 'Borland.Vcl.Windows' est propre à une plate-forme
    [Avertissement] ProprieteTE.pas(8): W1005 L'unité 'Borland.Vcl.Messages' est propre à une plate-forme
    [Avertissement] ProprieteTE.pas(8): W1005 L'unité 'Borland.Vcl.Graphics' est propre à une plate-forme
    [Avertissement] ProprieteTE.pas(8): W1005 L'unité 'Borland.Vcl.Controls' est propre à une plate-forme
    [Avertissement] ProprieteTE.pas(8): W1005 L'unité 'Borland.Vcl.Forms' est propre à une plate-forme
    [Avertissement] ProprieteTE.pas(9): W1005 L'unité 'Borland.Vcl.Dialogs' est propre à une plate-forme
    Blog de mon jeu L2D : http://xna-discovery.blogspot.com/
    Un Left 4 Dead Like en 2D vue de dessus ;p

  12. #12
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par SkYsO
    Penses tu que le problème vient de ces warning ?
    Non.
    Dans ton cas il faut déployer les assemblies Borland sur le poste cible.
    Regarde dans le gestionnaire de projet, la partie référence tu y trouvera la liste mais je ne connais pas les DLL associés.

    Mais Symley a surement cette info

  13. #13
    Membre régulier Avatar de SkYsO
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 217
    Points : 122
    Points
    122
    Par défaut
    Il n'y pas moyen de les "intégrer" à l'exe ?

    Donc si j'ai bien compris, il faut que dans mon programme d'installation je copie les dlls, qui ont un rapport avec ma liste de référence, dans un dossier spécifique de windows ?
    Blog de mon jeu L2D : http://xna-discovery.blogspot.com/
    Un Left 4 Dead Like en 2D vue de dessus ;p

  14. #14
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par SkYsO
    Il n'y pas moyen de les "intégrer" à l'exe ?
    je ne sais pas, je ne pense pas.
    Citation Envoyé par SkYsO
    Donc si j'ai bien compris, il faut que dans mon programme d'installation je copie les dlls, qui ont un rapport avec ma liste de référence, dans un dossier spécifique de windows ?
    Oui c'est tout à fait ça.
    Voir ce tuto sur les assemblages .NET
    http://laurent-dardenne.developpez.c...ge=page_2#L25.

    Il y manque justement la partie déploiement

  15. #15
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    J'ai lu dans l'aide que la seule dll Borland à distribuer c'est Borland.Delphi.dll...
    Comme tu as une version trial, je suppose qu'il manque des trucs mais par exemple sur Delphi 7 Enterprise, il y a un dossier MergeModules qui contient tout ce qui est nécéssaire au déploiment d'une application Delphi Win32. Je suppose que c'est la même chose pour Delphi 2005

  16. #16
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Sur le CD 1 de Delphi 2005, il existe 2 répertoires
    E:\Install\Common\Borland Shared\BDS\Shared Assemblies\3.0 (46 assemblies)
    E:\Install\GlobalAssemblyCache (31 assemblies).
    As-tu un fichier deploy.htm dans le répertoire de Delphi 2005 ?
    Il contient la liste des packageq et assemblies distribuables.

  17. #17
    Membre régulier Avatar de SkYsO
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 217
    Points : 122
    Points
    122
    Par défaut
    Salut,

    donc dans l'aide j'ai trouvé :

    Pour lier une unité Delphi

    Une fois votre application ouverte dans l'EDI, choisissez ProjetAjouter une référence.
    Dans la boîte de dialogue Ajout d'une référence, sélectionnez dans la liste des assemblages .NET une DLL d'assemblage générée par Delphi et cliquez sur le bouton Ajouter référence.
    Si l'assemblage que vous souhaitez lier n'est pas dans la liste, utilisez le bouton Parcourir pour le rechercher et le sélectionner.

    Cliquez sur OK.
    L'assemblage est listé dans le noeud Références du gestionnaire de projet.

    Dans le gestionnaire de projet, cliquez avec le bouton droit de la souris sur l'assemblage et sélectionnez Lier dans les unités Delphi.
    La commande de menu est désactivée si la référence n'est pas un assemblage généré par Delphi.

    Dans l'inspecteur d'objets, la propriété correspondante Lier les unités est initialisée à True.

    Choisissez ProjetCompiler pour compiler l'application.
    Là c'est ok mais quand je fais le click droit pour faire liée l'unité delphi et bien c'est grisé.
    Donc en gros les unité qui sont avec Borland.data.common.dll, Borland.vcl.dll ne sont pas des assemblies ?
    Et je ne peux pas les liéer
    Blog de mon jeu L2D : http://xna-discovery.blogspot.com/
    Un Left 4 Dead Like en 2D vue de dessus ;p

  18. #18
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par SkYsO
    Et je ne peux pas les lier
    Non car le principe de .NET c'est de livrer les assemblies dans le GAC ou dans le répertoire de l'appli.

    voir l'aide en ligne : ms-help://borland.bds3/bds3tasks/html/LinkingUnits.htm
    La commande de menu est désactivée si la référence n'est pas un assemblage généré par Delphi.

  19. #19
    Membre régulier Avatar de SkYsO
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 217
    Points : 122
    Points
    122
    Par défaut
    Oui c'est ce que j'ai compris.
    Donc la solution est de copier ces fichiers dans mon repertoire et de les livrer avec l'exe.

    Donc sur le post cible on trouvera un dossier avec l'exe et les dlls qu'il me faut.

    Si c'est ça, un tag résolu sera de mise donc
    J'attend confirmation avant
    Blog de mon jeu L2D : http://xna-discovery.blogspot.com/
    Un Left 4 Dead Like en 2D vue de dessus ;p

  20. #20
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Oui c'est ce que je ferais.
    Le GAC étant utilisé si tu as + appli qui utilise les mêmes espaces de nom.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] comment embed une DLL dans mon .exe final
    Par mapmip dans le forum VB.NET
    Réponses: 1
    Dernier message: 25/10/2011, 11h55
  2. [VS2003] Débugger des DLLs avec un .exe externe
    Par Vonziz dans le forum Visual Studio
    Réponses: 4
    Dernier message: 22/08/2008, 16h50
  3. Creer une dll avec mon application
    Par render-nick dans le forum C#
    Réponses: 7
    Dernier message: 23/08/2007, 02h13
  4. [Delphi 2005][IntraWeb]StandAlone => Dll pour Apache
    Par Giovanny Temgoua dans le forum Langage
    Réponses: 1
    Dernier message: 03/02/2006, 09h18

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