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 :

Trouver le nom de la DLL en cours d'execution


Sujet :

Langage Delphi

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Trouver le nom de la DLL en cours d'execution
    Je suis en train d'écrire une DLL et j'ai besoin au moment de l'execution de connaitre le nom de ma DLL (que l'utilisateur a pu renomée). La fonction paramStr(0) fait cela pour un EXE, mais pour une DLL je n´ai rien trouvé.
    (I need a function that give the name of the current DLL. I searched but I have only found the function paramStr(0) that give the excuting programme. There should the the equivalent for DLL).
    Merci pour toutes aide.

  2. #2
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Bonjour et bienvenue sur Développez.com

    Tout d'abord, comme à tous les nouveaux, je te conseille de lire les règles du forum, ainsi que l'aide aux nouveaux. De même, il ne te sert à rien d'écrire une copie de tes messages en anglais, ceci est un forum francophone et donc tous ceux qui le parcourent sont supposés connaître le français (du moins un peu). Ne t'attends pas non plus à recevoir une réponse en anglais, donc si quelq'un te réponds en français, c'est qu'il le comprend aussi a fortiori.
    Voilà pour les recommandations

    Pour répondre à ta question : tout d'abord, en principe, tu dois connaître le nom de ta DLL sinon il t'es impossible de la charger Donc, si tu connais ce nom au moment du chargement, tu es en mesure de le connaître aussi après
    Si ce que je dis est faux, détaille un peu plus ton problème.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut detail du probleme
    Ma DLL est un Module d'intelligence articielle pour le jeux C-evo.
    http://c-evo.org/
    Je veux donner la possibiliter a l'utilisateur de changer le nom de ma DLL et j'ai besoin (durant l'intialisation de ma DLL) de connaitre le nom que l'utilisateur a donné á ma DLL.
    C'est a dire depuis le code de la DLL je veux savoir le nom du fichier DLL (qui a pu etre changé depuis la compilation).
    J´utilise delphi 6 personel.
    Merci

  4. #4
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.ExeName;
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  5. #5
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut ca marche mais...
    Application.ExeName renvoie le nom de l application appelante (ce n est pas ce que je veux), si seulement il y avait quelque chose d'équivalent pour une DLL...
    http://castelain.developpez.com/sources/GetDllFilename fonctionne comme je le desire mais augmente la taille du fichier DLL de plus de 300Ko a cause de tous les uses, pour une DLL qui faisait moins de 100Ko avant cela fait beaucoup.
    Merci quand meme.

  7. #7
    Futur Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Utilisez le ComObj
    Declare dans Uses le mot ComObj

    le serveur Com Sauvegarde toujours le nom du projet et la classe du projet :

    var
    RefCom : Variant;

    begin
    RefCom := CreateoleObject('NomProjetCom.Nomdelaclasse');
    refCom.Methodeddelaclasse;
    refCom := Unassigned ;


    et Comme ça l'utilisateur peut changer le nom de la dll si la DLL est un objet Com

  8. #8
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Bha .... Pkoi faire compliqué quand on peut faire simple ....

    Comme l'a dit je ne sais plus qui, il t'est de toute maniere impossible de charger une dll sans en connaitre le nom, le chemin, et meme les procedures interne.

    Donc quand tu charge ta Dll (dynamiquement je suppose sinon le probleme n'existerais pas) tu connait le nom de ta dll, quel que soit le nom donné par l'utilisateur.
    Dans le pire des cas, il doit lui meme choisir la dll a charger, ou te donner le nom afin que tu sache quelle Dll charger.

    Dans ce cas, le plus simple est de charger ladite Dll, d'appeler une fonction de cette Dll nomé "RegisterDllName" par exemple qui prend en argument le nom de la dll fourni par l'utilisateur ...

    En interne, tu stoque ce nom dans un coin, comme ca tu sais son nom.

    Je vois pas pkoi yen a qui cherchent toujours midi a quatorze heure
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  9. #9
    Futur Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Utilisez le Serveur Com
    Vous savez c'est quoi s'agit "cet endroit" ?

    Utilisez le Serveur Com ou les API ?
    qu'elle est la meilleur solution ?

  10. #10
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Citation Envoyé par Clorish
    Comme l'a dit je ne sais plus qui, il t'est de toute maniere impossible de charger une dll sans en connaitre le nom, le chemin, et meme les procedures interne.
    C'est faux lorsqu'il s'agit d'une bibliothèque ActiveX (dll COM). C'est COM qui localise la dll et la charge.

  11. #11
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    C'est faux lorsqu'il s'agit d'une bibliothèque ActiveX (dll COM). C'est COM qui localise la dll et la charge.
    Effectivement .... Mea Culpa
    J'ai pas encore l'habitude de manipuler les objets com.

    D'ailleur je cherche un bon tuto la dessus pour ecrire des "Players" (cf les post multiples a propos de Dlls/Interfaces/Plugging que j'ai postés ;p)
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

Discussions similaires

  1. [VBA-E] Recuperer le nom de la fonction en cours d'execution
    Par Currahee dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 03/07/2017, 10h58
  2. Trouver le nom de la page en cours (include)
    Par Prosis dans le forum Langage
    Réponses: 2
    Dernier message: 09/11/2007, 02h33
  3. Réponses: 4
    Dernier message: 07/11/2006, 11h28
  4. Recuperer le nom de la page en cours
    Par Flushovsky dans le forum Langage
    Réponses: 2
    Dernier message: 02/10/2005, 12h13
  5. Trouver une fonctions dans des DLL
    Par Mercenary Developer dans le forum Langage
    Réponses: 2
    Dernier message: 08/09/2005, 15h28

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