Avatar billede friiiiis Novice
16. april 2005 - 16:51 Der er 16 kommentarer og
1 løsning

Handle overførsel mellem DLL filer

Hej,

Jeg har to DLL-filer. Jeg vil gerne lave det sådan at en ændring i den ene DLL-fil (DLL fil 1) medfører at den anden DLL-fil "får" den ændring (DLL fil 2) UDEN at DLL fil 1 bliver lukket.

Det svarer til at man i windows trykker på "Apply" i en settings dialog box og så får selve progammet omgående besked UDEN at settings DLL filen bliver lukket.

Det må være noget med at et handle fra DLL fil skal overføres til DLL fil 2 og så føres handlet tilbage igen..???

Kunne jeg ikke også få et eksempel på hvordan det programmeres op?? bare et simpelt eksempel...
Avatar billede martinlind Nybegynder
17. april 2005 - 12:00 #1
du kan da bare sende en besked mellem de to functioner du har i hver sin DLL eller hva' ?
Avatar billede friiiiis Novice
17. april 2005 - 12:04 #2
Det forstår jeg ikke martinlind - kan du ikke lige uddybe??

Hvis jeg sender en besked fra en DLL fil (DLL fil 1) til en anden DLL fil (DLL fil 2) forudsætter det at førnævnte DLL (DLL fil 1) bliver lukket...

Hvordan gør jeg ellers??
Avatar billede friiiiis Novice
17. april 2005 - 12:06 #3
Et Eksempel:

function ImportOfDataFile(ParentApplication: TApplication; ParentForm: TForm):TDataBasic; stdcall; export
begin
  Application := ParentApplication;
  Form1 := TForm1.Create(ParentForm);
  form1.ShowModal;
  Result := Form1.ImportData;
end;

I ovenstående bliver ImportData variablen først overført når DLL filen bliver lukket ned...
Avatar billede martinlind Nybegynder
17. april 2005 - 19:05 #4
det kommer da an på hvornår du kalder den function i din dll, hvis du kalder ImportOfDataFile(); så får du jo et resultat og køre vidre med det ( gøre hvad der skal til )
Avatar billede martinlind Nybegynder
17. april 2005 - 19:06 #5
og så for øvrigt glemme det med at sende besked :)
Avatar billede borrisholt Novice
19. april 2005 - 08:10 #6
Jeg kom lige forbi .. Kan vist ikke slippe helt ;)

Nå anyway.... Du skal bruge en teknik der hedder MemoryMapped File. Grund pillen er i det store hele at bruge funktion kaldet : CreateFileMapping.

Jeg har sendt dig en mail med et eksempel, hvor jeg sharer mellem 2 exe filer. Men du kan også bruge den mellem dll filer.

Jeg kan ikke uploade til min FTP her fra arbejde. Derfor har jeg sendt den direkte. Meeen er der andre der vil have eksmplet er de naturligvis meget velkommen til at skrive. Eller endnu bedere hvis nogen vil publicere eksemplet for mig ....

Jens B
Avatar billede friiiiis Novice
19. april 2005 - 08:43 #7
hej Jens,

ja, nu har jeg jo før fået noget fra dig og det plejer jo mildest talt at være helt perfekt så du får bare point'ene... men jeg har ikke fået den der vedhæftede fil fra dig?? jeg har fået en mail fra dig men der var ikke nogen fil vedhæftet...

jeg skal i øvrigt nok publicere din løsning...
Avatar billede borrisholt Novice
19. april 2005 - 09:35 #8
Nu skulle det være sendt til dig.

Jens B
Avatar billede borrisholt Novice
27. april 2005 - 06:44 #9
Bare af ren nysger5righed .. Fik du det til at virke ?

Jens B
Avatar billede friiiiis Novice
27. april 2005 - 08:10 #10
Hej,

jeg har simpelthen ikke haft tid - er i slutningen af et studieophold i udlandet og har RASENDE travlt - vender tilbage senest om ca. 2 uger...
Avatar billede jimgordon Nybegynder
25. maj 2005 - 15:20 #11
Kan man gøre det samme fra en delphi exe til en delphi dll ?
SÅ vil jeg også meget gerne se eksemplet. Skal selv overføre en række simple records i en exe til en dll. Men kan selvf. lave nogle funktioner i dll'en der modtagere disse records. Men CreateFileMapping lyder spændende.
jimgordon@hotmail.com :)
Avatar billede friiiiis Novice
25. maj 2005 - 15:24 #12
Hej,

Ja, jeg skal nok sende det til dig - Har pt. rasende uden-for-katogori rigtig rigtig voldsomt meget travlt... men skal nok sende Hr. Borrisholt's udmærkede projekt til dig...

men har ikke haft tid til at kigge på det...
Avatar billede borrisholt Novice
26. maj 2005 - 08:12 #13
friiiiis>> Ikke stresse for min skyld. Jeg har allerede sendt ham eksemplet.

Jens B
Avatar billede jimgordon Nybegynder
26. maj 2005 - 09:02 #14
>>Jens B, tak for koden. Mangler dog en reference til FastShareMem. Er det fordi jeg bruger Delphi 6 ?
Avatar billede martinlind Nybegynder
26. maj 2005 - 17:46 #15
FastShareMem >> en bedre version en delphi's egen, søg på google så finder du den :)
Avatar billede borrisholt Novice
27. maj 2005 - 08:13 #16
martin>> Det var en fejl den var kommet med projektet. Jeg har sendt manden en ny version, uden FastShareMem.

Jens B
Avatar billede friiiiis Novice
09. april 2007 - 01:07 #17
Tl jer som har skrevet til dette spørgmål - se lige dette nye spørgsmål - der er 200 point i det:

http://www.eksperten.dk/spm/772256
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester