![]() |
Datenübertragung PC -> PPC
hi ho
ich möchte eine datei vom/zum desktop zum/vom pocket pc kopieren. ich hab die rapi.pas von ![]() genommen. hier funzt nur die DesktopToDevice und CeDeleteFile - function. ich bekomme es einfach nich gebacken irgendwas mit CeCreateFile oder CeReadFile anzustellen. hab schon überlegt, ob das mit streams oder so geht, aber ich komm net weiter. kann mir jemand auf die sprünge helfen??? THX |
Re: Datenübertragung PC -> PPC
Moin Ekladius,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. Ich kenn' mich jetzt zwar mit Pocket PCs nicht weiter aus, aber hast Du Dir mal das Beispiel unter Punkt 5 der von Dir genannten FAQs angeschaut? Was funktioniert denn bei Dir nicht? Fehlermeldung/-code? |
Re: Datenübertragung PC -> PPC
Hallo Christian,
schön dass Du Dich wenigstens meldest. Den von Dir angesprochenen Punkt 5 betrifft sicherlich VB oder sowas. Ich möchte das aber mit Delphi schaffen. Mein code
Delphi-Quellcode:
wenn ich nun die ganze sache anschieben möchte bekomme ich folgenden fehler.
unit copy;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Rapi; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1 : TForm1; HSrc,HDes : THandle; Buffer : Pointer; BytesToRead, BytesReading, BytesWritten : DWord; o1 : Poverlapped; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var Source,Destination:PChar; begin CeRapiInit; HSrc := CreateFile ('c:\test.txt',Generic_Read ,File_Share_Read ,nil,Open_Existing,0,0); HDes := CeCreateFile ('test.txt',Generic_Write,File_Share_Write,nil,Create_Always,0,0); GetMem (Buffer, GetFileSize (HSrc, Buffer)); BytesToRead := GetFileSize (HSrc, Buffer); ReadFile (HSrc, Buffer^, BytesToRead, BytesReading, @o1); [B] CeWriteFile (HDes, Buffer^, BytesReading, BytesWritten, @o1);[/B] CloseHandle (HSrc); CeCloseHandle (HDes); CeRapiUnInit; end; end.
Delphi-Quellcode:
irgendetwas klappt nicht mit den pointer.
[Fehler] copy.pas(44): Inkompatible Typen: 'procedure, untyped pointer or untyped parameter' und 'Pointer'
[Fataler Fehler] Project1.dpr(6): Verwendete Unit 'copy.pas' kann nicht compiliert werden setze ich ein @ vor den pointer dann geht es soweit das das file auf dem pocket erstellt wird, aber ohne inhalt. wenn ich das ganze auf einer normalen umgebung laufen lasse, allso alles ohne ce (cereadfile) dann klappts auch, aber eben nicht richtung pocket oder pc. selbst ein CeGetFileSize vom pocket pc funzt es wird aber nichts gelesen. Ich hoffe Du kannst mir nen Tipp zu der fehlermeldung geben. besten Dank im Voraus |
Re: Datenübertragung PC -> PPC
Moin Ekladius,
könntest Du bitte noch einmal markieren, welches die betroffene Zeile ist? Mit der Angabe "Zeile 44" kann ich sonst nicht so recht was anfangen ;-) BTW: Ich verschieb' den Thread mal nach "Sonstiges" |
Re: Datenübertragung PC -> PPC
Hallo Christian
ich wollt die zeile fett machen, nun steht ein [b] davor egal. jedenfalls meckert der compiler nich wenn ich vor buffer^ ein @ setze. es passiert einfach nix. was mach ich falsch?? bin halt ein doofie. dank schön für Deine bemühungen achso ich hab den quellcode noch ordentlich gestellt, ändert aber nichts am problem. :freak: |
Re: Datenübertragung PC -> PPC
Moin Ekladius,
ich hab's mal für die lokale Anwendung (also ohne die CeXXXX Funktionen) umgebaut, und ein wenig verändert. Wichtigster Unterschied: Ich hab' mal die Overlapped Angaben in ReadFile und WriteFile weggenommen. Schau's Dir doch mal in Ruhe an. (und Denk, wenn's denn funktioniert, dran, die entsprechenden Funktionen wieder mit dem Präfix Ce zu versehen ;-) )
Delphi-Quellcode:
var
hsrc : DWORD; hdes : DWORD; Buffer : Pointer; BytesToRead : DWORD; BytesReading : DWORD; BytesWritten : DWORD; dwSize : DWORD; begin HSrc := CreateFile ('c:\test.txt',Generic_Read ,File_Share_Read ,nil,Open_Existing,0,0); HDes := CreateFile ('c:\test2.txt',Generic_Write,File_Share_Write,nil,Create_Always,0,0); try dwSize := GetFileSize(HSrc,nil); Buffer := AllocMem(dwSize); try BytesToRead := GetFileSize (HSrc, nil); ReadFile (HSrc, Buffer^, BytesToRead, BytesReading, nil); WriteFile (HDes, Buffer^, BytesReading, BytesWritten, nil); finally FreeMem(Buffer,dwSize); end; finally CloseHandle (HSrc); CloseHandle (HDes); end; end; |
Re: Datenübertragung PC -> PPC
Morgen Christian
tja Dein code funzt, genau wie meiner vorher. aber wenn ich aus writefile ein cewritefile mache dann meckert der compie wieder über "inkompatible typen 'procedure, untyped pointer or untyped parameter' und 'pointer'". ich bekomm bald nen anfall. trotzdem schönen dank |
Re: Datenübertragung PC -> PPC
:lol: HALLO CHRISTIAN :lol:
Ich habs geschafft :idea: ich habb jetzt bei cewritefile vor den buffer ein @ gesetzt das sieht dann so aus @buffer^ . zwei wochen lange suche hat ein ende. jaaaaaaaaa VIELEN DANK!!!!!!!! :party: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz