begin process at 2010 03 19 01:31:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Exécution

 > 

Passage de chaînes longues dans une DLL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Passage de chaînes longues dans une DLL

mardi 20 mai 2008 à 22:22:47 | Passage de chaînes longues dans une DLL

cantador

Membre Club
Bonsoir à tous,

Je vais être obligé de passer des chaînes longues(mail, texte, etc) en paramètre dans une DLL.
Avant de me lancer dans l'écriture des programmes, je souhaiterais savoir si
quelqu'un a déjà rencontré des difficultés dans cet exercice, non pas pour créer et intégrer la DLL mais
dans le fonctionnement de l'ensemble.

Bref est ce que c'est jouable ?

merci par avance

cantador
mardi 20 mai 2008 à 23:16:13 | Re : Passage de chaînes longues dans une DLL

Delphiprog

Administrateur CodeS-SourceS
Venant de toi, la question m'étonne un peu et j'ai peur qu'elle en cache une autre.
Pourquoi n'utilises-tu pas des PChar comme c'est conseillé dans les commentaires créés automatiquement avec l'assistant DLL ?

May Delphi be with you !

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
mardi 20 mai 2008 à 23:31:00 | Re : Passage de chaînes longues dans une DLL

cantador

Membre Club
Voilà ce qu'on peut lire dans un tuto :

avec le type shortString : no problems..çà marche nickel.

mais :

L'autre différence avec un fichier DPR d'application est le long commentaire ajouté par Borland au début du fichier.
Il donne quelques informations sur des précautions à prendre lors du développement de DLL dans Delphi. En effet, le type string dans Delphi est un type particulier dont la gestion en mémoire diffère de la gestion des chaînes de caractères par Windows. Ainsi Borland prévient que, si vous comptez faire transiter des variables de type string entre votre DLL et les applications qui l'utilisent, il vous faudra :

  • Ajouter 'ShareMem' en première position dans la clause uses de votre DLL et des applications qui l'utiliseront
  • Déployer la DLL 'BORLNDMM.DLL' (Borland Memory Manager) avec votre propre DLL.
    Cette bibliothèque de Borland remplace le gestionnaire de mémoire par défaut de votre DLL dans le but de permettre l'échange en mémoire de vos variables de type string.
Autant dire que ce n'est pas vraiment avantageux d'utiliser des string avec des DLL ! Cela limiterait d'ailleurs leur emploi à des programmes incluant ShareMem, donc des programmes Delphi.

et comme je me méfie de ce genre de construction, j'essaie d'en savoir un peu plus..

merci pour ton aide delphiprog

cantador
mardi 20 mai 2008 à 23:40:40 | Re : Passage de chaînes longues dans une DLL

Delphiprog

Administrateur CodeS-SourceS
Réponse acceptée !
Récapitulation : avec les PChar, aucun de ces inconvénients en vue.
Ouf, me voilà rassuré


May Delphi be with you !

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
mercredi 21 mai 2008 à 01:33:39 | Re : Passage de chaînes longues dans une DLL

f0xi

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
petite demo de code :

Delphi DLL et String.zip




mercredi 21 mai 2008 à 22:02:47 | Re : Passage de chaînes longues dans une DLL

cantador

Membre Club
merci Delphiproget f0xi.
j'ai passé plusieurs énormes chaînes et
ouf çà passe..sur D7 bien sûr.

cantador
jeudi 22 mai 2008 à 12:52:01 | Re : Passage de chaînes longues dans une DLL

Shai

Réponse acceptée !

juste pour info, si l'on passe une string en const, cela fonctionne très bien puisque BordelMM est uniquement utile pour la ré-allocation de chaine ... d'ailleurs faire passer un paramètre en const, je rappele que cela fait passer uniquement un pointeur, ... donc on ne recopie pas la chaine, c'est comme si l'on faisait passer un pointeur sur TStrRec ...

Voir ICI


Shai Le Troll
!! Aide via F1 !! Pensez-y !!
 
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le conf

jeudi 22 mai 2008 à 23:18:49 | Re : Passage de chaînes longues dans une DLL

cantador

Membre Club
merci Shai pour le lien.

cantador


Cette discussion est classée dans : passage, dll, chaînes, longues


Répondre à ce message

Sujets en rapport avec ce message

Delphi et C++ passage de'instances [ par ptitmanu ] Bonjour,Je programme une appli en Delphi qui utilise une DLL ecrite en VC++. Je fais appel à des méthodes de ma DLL qui me retourne des objets. Que do Passage de paramètres erroné [ par mounjetado ] bonjour,il y avait longtemps que je ne vous avais embêtés avec mes questions!j'ai écrit une fonction dans une dll de mon crû, que j'utilise dans la fi Fermer un process sans sa DLL [ par christophedlr ] Bonjour,Pour mon programme je voudrais faire un système de mise à jour.Je pensais à faire une DLL, mais on arrive à ma question.Quand on provoque la f Exécuter une fonction [ par cantador ] Salut les delphinautes, Ben voilà à mon tour de poser une question :Dans une appli client/serveur (exécutables sur poste de travail), j'ai besoin d' passage d'une appli. de Delphi3 à Delphi5 [ par AEC1 ] Bonjours à tous j'ai une question qui semble simple pour certains mais qui me laisse perplexe.A savoir que je dispose d'applications perso. que j'avai Aquisition Vidéo [ par Oniria ] Bonjour,Est-ce que quelqu'un connais une dll, ou un composant autre qu'avicap32.dll pour enregistrer une image ?Je m'explique : j'utilise actuellement Traduction code DLL en C++ vers Delphi 2005 [ par Pierre95870 ] Bonjour,Je souhaiterais convertir le code d'une DLL écrite en C++ (jointe) vers Delphi 2005.Pourriez vous m'y aider vu que je ne connais pas C++.Merci thread & dll -> Exception [ par WSTBoss ] Bonjour à tous,j'ai une dll qui contient un thread, tout ce passe bien le thread marche comme il faut mais cependant lors du dechargement de la dll pa DLL Introuvable sous Win2000 mais ok sous XP. [ par atomicfe ] Bonjour à tous,J'ai une application en Delphi 7 que j'ai faite , qui utilise une DLL toute simple que j'ai faite aussi en C.J'ai developpé l'applicati expert dll [ par buguetj ] Bonjour a tous, j'ai créé un lecteur de carte à puce...Je souhaiterais à présent créer un fichier dll (avec delphi expert) pour pouvoir intégrer ce ph


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales