begin process at 2012 02 11 03:20:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Aide et documentation

 > 

Passer des objets à une DLL


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

Passer des objets à une DLL

samedi 26 juillet 2008 à 23:05:34 | Passer des objets à une DLL

christophedlr

Membre Club
Bonsoir,

A la suite du problème que j'avais ici : http://www.delphifr.com/infomsg_PLACER-DONNEES-TFILESTREAM-DANS-TMEMORYSTREAM_1178462.aspx

J'ai un autre soucis.
Dans ma DLL (même fonction que celle donné dans mon lien, je vais la redonner ici), je passe un objet à une des fonctions.

Le soucis étant que le texte ne se retrouve dans mon TRichEdit comme demandé, aucune erreur n'est renvoyé.
Toutefois après avoir fait des tests sur un projet de test, cela fonctionne bien quand il y a pas de DLL au milieu qui fait ce changement.

Y-a-t-il donc un moyen de faire ?

J'explique, en fait ma fonction va lire une information sur la taille des prochaines données, puis il va lire les données en question.
Il doit ensuite placé les données récupérer du fichier dans le TRichEdit.
J'avais donc pensé au TFileStream pour lire le fichier, TMemoryStream pour mettre les données en mémoire afin de les mettre dans mon TRichEdit avec LoadFromStream.

Voici le code de la fonction :

procedure TFormatFEF.LoadFromFile(var RichEdit: TRichEdit);
var
Size: Integer;
MemoryStream: TMemoryStream;
begin
MemoryStream := TMemoryStream.Create;

if (ReadFile = False) then
begin
MessageDlg('Vous ne pouvez pas appeler une fonction de lecture en demandant'+
' une écriture du projet', mtError, [mbok], 0);
Exit;
end;

FileStream.ReadBuffer(Size, 4); //Lit la taille
MemoryStream.CopyFrom(FileStream, Size); //Copie les données dans le TMemoryStream
RichEdit.Lines.LoadFromStream(MemoryStream); //Inscrit dans le RichEdit
MemoryStream.Free;
end;

Merci d'avance à ceux qui pourront m'aider.
dimanche 27 juillet 2008 à 07:22:05 | Re : Passer des objets à une DLL

f0xi

Membre Club Administrateur CodeS-SourceS


procedure TFormatFEF.LoadFromFile(RichEdit: TRichEdit);
var
  Size: Integer;
  MemoryStream: TMemoryStream;
begin
  MemoryStream := TMemoryStream.Create;
  try
    if not ReadFile then
    begin
      MessageDlg('Vous ne pouvez pas appeler une fonction de'+#13#10+
                 'lecture en demandant une écriture du projet.',
                 mtError, [mbok], 0);
      Exit;
    end;

    FileStream.ReadBuffer(Size, 4);
    if Size <> 0 then
    begin
      MemoryStream.CopyFrom(FileStream, Size);
      MemoryStream.Position := 0;
      RichEdit.Lines.LoadFromStream(MemoryStream);
    end
    else
    begin
      // message : Size = 0, aucun texte ...
    end;
  finally 
    MemoryStream.Free;
  end;
end;




dimanche 27 juillet 2008 à 09:33:57 | Re : Passer des objets à une DLL

christophedlr

Membre Club
Oui mais ça va pas modifier le TRichEdit passer en paramètre si ?
Surtout ce que je comprend pas c'est que cela fonctionne si ce n'est pas mis dans une DLL.
dimanche 27 juillet 2008 à 10:17:24 | Re : Passer des objets à une DLL

christophedlr

Membre Club
Je viens d'essayer et cela change rien, mon TRichEdit est toujours vide.
dimanche 27 juillet 2008 à 10:32:52 | Re : Passer des objets à une DLL

christophedlr

Membre Club
Réponse acceptée !
Bon je viens de faire un nouveau test, j'ai regardé ce que fait le LoadFromStream du TRichEdit (dérivé de TStrings).
J'ai fait un copier/coller de ce qu'il fait et ça fonctionne parfaitement mais en l'appelant ça marche pas.
dimanche 27 juillet 2008 à 10:35:46 | Re : Passer des objets à une DLL

christophedlr

Membre Club
Réponse acceptée !
Bon problème totalement résolu, il faut que j'appelle manuellement le BeginUpdate avant et le EndUpdate après, mais c'est bizarre car ils sont déjà appelé avec le LoadFromStream enfin bon cherchez à comprendre ça sert a rien sur ce coup là.


Cette discussion est classée dans : fonction, données, dll, memorystream, tmemorystream


Répondre à ce message

Sujets en rapport avec ce message

Placer des données d'un TFileStream dans un TMemoryStream [ par christophedlr ] Bonsoir, Je voudrais dans mon programme, lire un fichier don les données que le lis sont transféré vers un TMemoryStream afin de pouvoir les placer e Transmission adresse fonction à une dll [ par Oniria ] Bonjour à tous, ma question est un peu technique.J'ai une interface CAN2.0B de Lawicel (l'interface CANUSB) qui doit me permettre de voir et de commu Espionner une dll pour récupérer un flot de données [ par gorets ] J'ai un programme qui utilise une fonction placée dans une dll. cette dll redirige par une fonction un flux de donnée vers le port parallèle (ou série comment declarer une fonction privé dans une dll delphi [ par jayceblaster ] Bonjour,je suis en train de créer un dll via l'expert de DLL delphi et je souhaite déclarer une fonction privé comme je peux le faire dans un projet V Recherche Expert Delphi .Net pour quelques questions [ par lbensch ] Bonjour,Je dois me lancer dans le re-développement d'un programme en Delphi 2005 .Net mais je ne comprends pas très bien le principe. J'aurais quelque 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 Utilisation d'une dll ecrite en C++ avec delphi [ par gilch ] Bonjour,j'utilise une dll ecrite en C++ sous delphi, le fonctionement est ok mais j'ai un pb avecla declaration d'une fonction.Dans le programme C++ q Transfert de données locales via DLL et socket! [ par Damien7784 ] Bonjour à tous; Ceci est ma deuxième requête sur le forum et comme pour la première je tiens à préciser que j'ai fait des recherches avant de m'adres lister les fonction d'une dll [ par mouhandarab ] comment lister les fonction d'une dllj'utilise un dependency walker mais jarrive pas a trouver les return d'une fonctionmerci pour votre aide 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'


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 4,727 sec (3)

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