Avatar billede megabyte_ Nybegynder
18. juni 2008 - 09:30 Der er 6 kommentarer og
1 løsning

Copy file function i dll

Hej

Efter lidt hjælpe her fra i spm http://www.eksperten.dk/spm/834566 fik vi vores copy function til at virke perfekt, men efter vi er gået lidt videre og har lagt den i en dll er der opstået nye problemer
Der kommer ingen fejl men kopierer ikke filen, den laver en "kopi" af filen på 0-1 kb

Håber der er nogen der kan hjælpe

Copy funktionen

  AssignFile(FromF, fSource);
  reset(FromF);
  AssignFile(ToF, fDestination);
  rewrite(ToF);
  try
    fFileLength := FileSize(FromF);
    Synchronize(InitializeProgress);
    t1 := GetTickCount; t3 := t1;
    while fPosition < fFileLength do
    begin
      BlockRead(FromF, Buffer[0], SizeOf(TBuffer), NumRead);
      BlockWrite(ToF, Buffer[0], NumRead);
      inc(fPosition,NumRead);
      t2  := GetTickCount;
      if (t2 - t3 > 500) or (fPosition = fFileLength) then
      begin
        PctDone := fPosition / fFileLength;
        Delta := t2 - t1;
        ETA := Delta / PctDone - Delta;
        fTimeLeftText := FormatFloat('00ms', ETA);
        t3 := t2;
        Synchronize(UpdateProgress);
      end;
    end;
  finally
    CloseFile(FromF);
    CloseFile(ToF);
    Synchronize(FinalizeProgress);
  end;

den bliver kaldt fra ddl’en  på denne måde

  with TThreadCopy.Create(aProgressBar,aLabel) do
  begin
    Source := string(aSourceFile);
    Destination := string(aDestinationFile);
    resume;
  end;

hvis i har brug for mere kode så sig til

/MB
Avatar billede a_nor Nybegynder
18. juni 2008 - 10:16 #1
Det er vigtigt at du først i din 'Uses'-sætning anvender Sharemem !
Dette gælder både i dll-en (Library def) og i dit kaldende program.
Avatar billede a_nor Nybegynder
18. juni 2008 - 10:17 #2
Dette gælder når du bruger Strings i funktion og parametre.
Du skal hellere anvende pchars!
Avatar billede megabyte_ Nybegynder
19. juni 2008 - 09:52 #3
Hej

Jeg bruger Sharemem samt pchars
Avatar billede a_nor Nybegynder
19. juni 2008 - 18:03 #4
Hvis du skal have mere præcis assistance, skal du nok sende noget mere! F.eks. Interface-delen i din dll.

Hvis dit system bliver ustabilt (GP-errors) tyder det kraftigt på fejl i overførslerne.

Som HRC nævner i dit ovennævnte spm., kan du debugge din dll som beskrevet.

Hvad med at teste kopiering i dll-en først og så tilføje din TThread når du har styr på at dll-en kaldes rigtigt.

mvh
Avatar billede hrc Mester
01. juli 2008 - 23:19 #5
Megabyte: Er I kommet videre?
Avatar billede megabyte_ Nybegynder
02. juli 2008 - 11:53 #6
Nej :( vi har lagt det lidt på hylden håber der er en der kommer med et par guldkorn i denne tråd :)
Avatar billede megabyte_ Nybegynder
16. december 2008 - 15:32 #7
Lukket
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