Ciao ragazzi!
Oggi ho bisogno di aiuto. come mi posso convertire un (char *)buffer da ReadFile cosi lo output mi posso inviare ad un Dialog del WinAPI?
Grazie a mille!
Dennis M.
Ciao ragazzi!
Oggi ho bisogno di aiuto. come mi posso convertire un (char *)buffer da ReadFile cosi lo output mi posso inviare ad un Dialog del WinAPI?
Grazie a mille!
Dennis M.
Non ci ho capito nulla ... ma che hai detto?
P.S. Devi anche indicare il linguaggio nel titolo ... vedi regolamento.
No MP tecnici (non rispondo nemmeno!), usa il forum.
beh mi usare il funziona ReadFile di Windows.
l'ho letto informazione da un pipe. cmq mi vorrei per inviare che output (solo il testo) ad un HWND (CreateWindowEx(0,"edit ...)). mi posso inviare l'informazione ad il Dialog senza ogni problema ma anche si invia piЫ di solo testo.codice:BOOL WINAPI ReadFile( __in HANDLE hFile, __out LPVOID lpBuffer, __in DWORD nNumberOfBytesToRead, __out_opt LPDWORD lpNumberOfBytesRead, __inout_opt LPOVERLAPPED lpOverlapped );
Mi spiego
Vorrei:
Ma l'hocodice:some output...'Hola Mondo' means... Hello word!
Ciaocodice:some output...'Hola Mondo' means... Hello word!лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл$
Dennis M.
ReadFile restituisce il numero di caratteri letti in lpNumberOfBytesRead.
Devi usare quel valore per mettere il NULL alla stringa.
codice:char buffer[256]; DWORD bytesRead=0; ReadFile(hfile, buffer, 256, &bytesRead,NULL); buffer[bytesRead] = NULL;
This code and information is provided "as is" without warranty of any kind, either expressed
or implied, including but not limited to the implied warranties of merchantability and/or
fitness for a particular purpose.
Concordo con shodan ...
P.S. I traduttori automatici NON funzionano ...![]()
No MP tecnici (non rispondo nemmeno!), usa il forum.
non uso un traddutore XD il mio italiano Х solo male :P
capisco ma non Х il mio problema.
vedi
Ciaocodice:DWORD dwRead; char chBuf[BUFSIZE], currentBuf[BUFSIZE]; int textlen; BOOL bSuccess = FALSE; HWND cText; cText = ::GetDlgItem(global,IDO_WORLDOUT); textlen = ::GetWindowTextLengthA(cText); ::GetDlgItemTextA(global,IDO_WORLDOUT,currentBuf,textlen+1); ::ReadFile(_hChild_Out_Rd, chBuf, BUFSIZE, &dwRead, NULL); strcat(currentBuf, chBuf); ::SetDlgItemTextA(global,IDO_WORLDOUT,currentBuf);
Dennis M.
Il problema Х proprio quello, invece; se la stringa che leggi non Х NUL-terminata, devi aggiungere tu il NUL finale; basta inserire, subito dopo la ReadFile
Tra parentesi, la chiamata a GetDlgItemTextA non dovrebbe specificare textlen+1, ma BUFSIZE, dato che il buffer che usi Х grande BUFSIZE, non textlen. Se per caso textlen fosse piЫ grande di BUFSIZE con il tuo codice ti ritroveresti con un buffer overflow, mentre con il codice corretto avresti una stringa troncata.codice:chBuf[dwRead-1]=0;
In realtЮ l'approccio migliore se vuoi andare sul sicuro sarebbe allocare dinamicamente la memoria necessaria per la stringa.
Un suggerimento al volo: nella maggior parte dei casi (questo in particolare) "bad" si traduce come "cattivo", non come "male".Originariamente inviato da DennisM
non uso un traddutore XD il mio italiano Х solo male :P
Amaro C++, il gusto pieno dell'undefined behavior.