cs_MAsterC
Messages postés217Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention19 décembre 2012
-
2 avril 2004 à 05:39
cs_deutsch
Messages postés58Date d'inscriptionlundi 6 mars 2006StatutMembreDernière intervention 1 avril 2010
-
16 mars 2008 à 10:09
Salut à tous!
Je voudrai savoir comment faire pour stoker des "String" dans un DLL pour ensuite la récupéré dans mon .exe.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 3 avril 2004 à 23:31
Quand tu utilises la commande Fichier|Nouveau|Expert DLL dans Delphi, Borland nous fait un petit rappel sur les conditions d'utilisation des chaines entre un exécutable et une DLL.
La réponse est donc contenue dans ce rappel...
May Delphi be with you
fade96
Messages postés12Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention29 avril 2006 31 mars 2006 à 22:29
salut tous !
si par hasard il y en a qui ont u du mal a comprendre au message de l'expert DLL (mon cas a mes tout debut ds Delphi), je m'y sui penché vite fai et en fesan passer en PChar, ca marche
genre:
ds la DLL:
function AfficheCoucou: PChar
begin
Result := PChar('Coucou !!!');
end;
cs_deutsch
Messages postés58Date d'inscriptionlundi 6 mars 2006StatutMembreDernière intervention 1 avril 2010 16 mars 2008 à 10:09
Remarque tres importante concernant la gestion de mémoire de DLL :
ShareMem doit être la première unité de la clause USES de votre bibliothèque ET de votre projet
(sélectionnez Projet-Voir source)
c.a.d
concernant la dll
library Project1;
uses
ShareMem, SysUtils,
Classes;
{$R *.res}
begin
end.
ensuite concernant le projet :
program MonProjet;
uses
ShareMem,Forms,
form1 in 'form1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
si votre DLL exporte des procédures ou des fonctions qui passent des chaînes en tant que paramètres ou résultats de fonction. Cela s'applique à toutes les chaînes passées de et vers votre DLL --même celles
, passez les informations de chaînes avec des paramètres PChar ou ShortString.
c.a.d pour le projet
Function Mafonstion(N:Integer):pchar; stdcall; external 'madll.dll' ; //ici pchar est un pointeur de type string