Newsgroup: it.comp.programmare.win32
Titolo: WriteFile

devo fare in modo che la WriteFile inizi a scrivere dall'ultimo carattere
presente nel file, e mi sembra di aver capito dall'msdn che per far questo
il file deve essere aperto con flag OVERLAPPED,
e la WriteFile deve ricevere una struttura OVERLAPPED dove inserire
autoaticamente l'offset da cui iniziare a scrivere.
dove sbaglio???
LPOVERLAPPED lpOverlapped;
lpOverlapped = new OVERLAPPED;
hFile =
CreateFile("prova2.txt",GENERIC_WRITE|GENERIC_READ,FILE_SHARE_WRITE,NULL,OPE
N_ALWAYS,FILE_FLAG_OVERLAPPED,NULL);
WriteFile(hFile,s_temp,strlen(s_temp),&lpNumberOfBytesWrite,lpOverlapped);
il compilatore non da errori, ma la WriteFile non funziona...

 il file deve essere aperto con flag OVERLAPPED,
potresti aprirlo normalmente ,posizionare l'handle alla fine del file e
cominciare a scrivere da lì.(in re4altà non l'ho mai fatto quindi non so se
funziona)
ciao

 cominciare a scrivere da lě.
emh... e come lo posiziono l'handle alla fine del file?!?!?!?!?!?!



_lseek
Antonio


WOW!!!
pero' come diavolo glielo passo l'handle del file??? con il casting (int)
non funziona.... :o(

 emh... e come lo posiziono l'handle alla fine del file?!?!?!?!?!?!
DWORD SetFilePointer(
  HANDLE hFile,          // handle of file
  LONG lDistanceToMove,  // number of bytes to move file pointer
  PLONG lpDistanceToMoveHigh,
                         // pointer to high-order DWORD of
                         // distance to move
  DWORD dwMoveMethod     // how to move
);
ciao

 Antonio
ciao

GRAZIEEE!!!!

 il compilatore non da errori, ma la WriteFile non funziona...
uffaaaaa... primo, "non funziona": siam mica sensitivi, dicci almeno il 
codice d'errore, il valore di ritorno. Secondo, ma che li scrivono a 
fare i manuali se la gente non li degna nemmeno di una lettura?
"WriteFile
[...]
lpOverlapped
Points to an OVERLAPPED structure. This structure is required if hFile 
was opened with FILE_FLAG_OVERLAPPED.
If hFile was opened with FILE_FLAG_OVERLAPPED, the lpOverlapped 
parameter must not be NULL. It must point to a valid OVERLAPPED 
structure. If hFile was opened with FILE_FLAG_OVERLAPPED and 
lpOverlapped is NULL, the function can incorrectly report that the 
write operation is complete.
If hFile was opened with FILE_FLAG_OVERLAPPED and lpOverlapped is not 
NULL, the write operation starts at the offset specified in the 
OVERLAPPED structure and WriteFile may return before the write 
operation has been completed. In this case, WriteFile returns FALSE and 
the GetLastError function returns ERROR_IO_PENDING. This allows the 
calling process to continue processing while the write operation is 
being completed. The event specified in the OVERLAPPED structure is set 
to the signaled state upon completion of the write operation. 
If hFile was not opened with FILE_FLAG_OVERLAPPED and lpOverlapped is 
NULL, the write operation starts at the current file position and 
WriteFile does not return until the operation has been completed. 
If hFile was not opened with FILE_FLAG_OVERLAPPED and lpOverlapped is 
not NULL, the write operation starts at the offset specified in the 
OVERLAPPED structure and WriteFile does not return until the write 
operation has been completed.
[...]"
A te interessa il quarto caso. Ricordatelo per il futuro
E scusa per il tono brusco, ma qui non si insegna alla gente a leggere, 
si insegna a programmare. Qualche suggerimento: nel manuale dell'API 
Win32 leggi sempre per bene la sezione Remarks, e controlla che la 
semantica dei parametri che passi sia corretta (che faccia cioè quello 
che intendi). E usa gli hyperlink. Esplora le funzioni nello stesso 
gruppo, quelle nella sezione See Also, vedi se per caso non ce n'è una 
che è più adatta allo scopo
-- 
 < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
     Don't stand, REACT!      version 0.0.19. C, C++ and ASM developers
                              and beta testers are welcome!


hai completamente ragione, ma il mio inglese è quello che è, quindi riesco a
capire qualche cosa di astratto, ma di preciso niente!!!!
Cmq quello che mi hai scritto di fare già lo faccio, ripeto, è che se la
microsoft non mi farà mai un msdn in italiano riuscirò a capire ben poche
cose!!!!
K