Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-03-2012, 17:25   #1
DomusP45
Senior Member
 
L'Avatar di DomusP45
 
Iscritto dal: Apr 2010
Città: Whiterun
Messaggi: 580
[C++] strcat e gli array unsigned char...

Salve a tutti, vi posto una parte di codice che vorrei mi aiutaste a risolvere:

devo concatenare due array di tipo "unsigned char" in uno solo per passarlo poi alla porta com. Solo che strcat non se li prende "unsigned"....

difatti da questo codice:

int Posiziona(unsigned char p[255])
{
unsigned char par[255]="0x05B0 ";
strcat(par,p); //aggiungo header per il posizionamento, in testa ai parametri passati

//invio buffer alla porta

int inv=SendBuf(Pnum,par,254);

return inv; //mi ritorna il numero di bytes inviati

}


mi ritorna un errore e non compila, l'errore è:

invalid conversion from ‘unsigned char*’ to ‘char*’

mi dite come posso fare? Devono essere per forza unsigned gli array purtroppo.

Aiuto!
__________________
Come la chiami la chiami, la cocozza sempre cocozza è.
DomusP45 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2012, 17:46   #2
!fazz
Moderatore
 
L'Avatar di !fazz
 
Iscritto dal: Nov 2006
Messaggi: 22006
casting?
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX)
Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000
!fazz è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2012, 18:04   #3
DomusP45
Senior Member
 
L'Avatar di DomusP45
 
Iscritto dal: Apr 2010
Città: Whiterun
Messaggi: 580
Quote:
Originariamente inviato da !fazz Guarda i messaggi
casting?
scusa ma che risposta è?
o mi dici come si fa oppure è inutile rispondere così...è una sezione dove si possono fare domande o no?

lo so benissimo che si dovrebbe fare il "casting" ma come?
in questo caso come lo fai? e visto che il parametro alla funzione deve essere comunque unsigned come si fa?

Se lo sapevo, mica chiedevo...help me!
__________________
Come la chiami la chiami, la cocozza sempre cocozza è.
DomusP45 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2012, 20:58   #4
!fazz
Moderatore
 
L'Avatar di !fazz
 
Iscritto dal: Nov 2006
Messaggi: 22006
Quote:
Originariamente inviato da DomusP45 Guarda i messaggi
scusa ma che risposta è?
o mi dici come si fa oppure è inutile rispondere così...è una sezione dove si possono fare domande o no?

lo so benissimo che si dovrebbe fare il "casting" ma come?
in questo caso come lo fai? e visto che il parametro alla funzione deve essere comunque unsigned come si fa?

Se lo sapevo, mica chiedevo...help me!
ma che modi,

semplicemente ti ho dettp di provare fare un castiing, operazione banalissima in c++
domanda--> risposta come si fà a far credere che una variabile di un tipo sia una variabile di un altro tipo? --> usa il casting


tralasciando il fatto che non capisco come mai un semplice numero devi mandarlo con uchar ma non hai provato se funziona un semplice
strcat((char*)par,(char*)p); oppure potevi provare a dichiarare due banalisismi puntatori a char e associarli ai tuoi vettori?

ovviamente non è detto che funzioni dipende dall'architettura

ma qui la gente vuole la pappa pronta, una persona che fà il lavoro al posto vostro,non basta la semplice soluzione o un idea per risolvere!
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX)
Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000
!fazz è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2012, 23:31   #5
DomusP45
Senior Member
 
L'Avatar di DomusP45
 
Iscritto dal: Apr 2010
Città: Whiterun
Messaggi: 580
Quote:
Originariamente inviato da !fazz Guarda i messaggi

tralasciando il fatto che non capisco come mai un semplice numero devi mandarlo con uchar ma non hai provato se funziona un semplice
strcat((char*)par,(char*)p); oppure potevi provare a dichiarare due banalisismi puntatori a char e associarli ai tuoi vettori?

ma qui la gente vuole la pappa pronta, una persona che fà il lavoro al posto vostro,non basta la semplice soluzione o un idea per risolvere!
caro !fazz,
lungi da me cercare pappe pronte.

Sono settimane che sto sbattendo la testa su una classe di comunicazione seriale che sto creando, e questo è un problema che sto cercando di risolvere.

Il casting come l'hai descritto tu, purtroppo non va. E non è tanto banale, sai?

Deve girare su un sistema linux, purtroppo la libreria seriale che devo usare per la comunicazione ha come funzioni di input e output funzioni che accettano solo "unsigned char"...e visto che devo concatenare due vettori unsigned, avevo chiesto se qualcuno sapeva dirmi come...visto che prima di postare qua ho cercato in giro con google, ma c'è tanta confusione e cose che non centrano.

Ora, visto che ho fatto tante domande in questa sezione del forum, ma purtroppo non mi hanno saputo aiutare, avevo chiesto questa cosa specifica, proprio per ricevere magari una risposta "diretta" su come concatenarli due array di quel tipo.

La cosa dei puntatori non l'ho provata e la proverò...e ti terrò aggiornato.

Ma se qualcuno avesse qualche altra idea, fatemi sapere.
__________________
Come la chiami la chiami, la cocozza sempre cocozza è.
DomusP45 è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2012, 01:46   #6
__ZERO_UNO__
Member
 
L'Avatar di __ZERO_UNO__
 
Iscritto dal: Jul 2009
Città: Milano
Messaggi: 270
Ho provato usando reinterpret_cast e funziona. Trovi la documentazione qui: http://www.cplusplus.com/doc/tutorial/typecasting/
Nasty nasty thing anyhow... hihihihi
__________________

AMD PII x4 955 BE | Sapphire HD4850 Vapor-X 1 GB | Samsung SpinPoint F1 500GB | Samsung EcoGreen F4 2TB
Gigabyte GA-MA790FXT-UD5P | Fractal Design Define R3 USB3.0 Titanium Grey | CORSAIR 650W CMPSU-650TX
Noctua U12P SE2 | 2 x 2GB Kingston 1333 MHz | Samsung SyncMaster P2450 | Samsung SyncMaster T200
__ZERO_UNO__ è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2012, 10:31   #7
!fazz
Moderatore
 
L'Avatar di !fazz
 
Iscritto dal: Nov 2006
Messaggi: 22006
Quote:
Originariamente inviato da DomusP45 Guarda i messaggi
caro !fazz,
lungi da me cercare pappe pronte.

Sono settimane che sto sbattendo la testa su una classe di comunicazione seriale che sto creando, e questo è un problema che sto cercando di risolvere.

Il casting come l'hai descritto tu, purtroppo non va. E non è tanto banale, sai?

Deve girare su un sistema linux, purtroppo la libreria seriale che devo usare per la comunicazione ha come funzioni di input e output funzioni che accettano solo "unsigned char"...e visto che devo concatenare due vettori unsigned, avevo chiesto se qualcuno sapeva dirmi come...visto che prima di postare qua ho cercato in giro con google, ma c'è tanta confusione e cose che non centrano.

Ora, visto che ho fatto tante domande in questa sezione del forum, ma purtroppo non mi hanno saputo aiutare, avevo chiesto questa cosa specifica, proprio per ricevere magari una risposta "diretta" su come concatenarli due array di quel tipo.

La cosa dei puntatori non l'ho provata e la proverò...e ti terrò aggiornato.

Ma se qualcuno avesse qualche altra idea, fatemi sapere.
sarebbe bastato dirlo nel primo post oppure come reply anche un solo "ho già provato e non funziona " sarebbe bastato

domanda perchè devi concatenare degli unsigned? non fai prima a gestirli come numeri

ps sotto linux mi sa che fai prima a utilizzare i file che una libreria di comunicazione seriale
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX)
Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000
!fazz è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2012, 13:08   #8
DomusP45
Senior Member
 
L'Avatar di DomusP45
 
Iscritto dal: Apr 2010
Città: Whiterun
Messaggi: 580
Innanzi tutto grazie a tutti per la disponibilità.

Quote:
Originariamente inviato da __ZERO_UNO__ Guarda i messaggi
Ho provato usando reinterpret_cast e funziona. Trovi la documentazione qui: http://www.cplusplus.com/doc/tutorial/typecasting/
Nasty nasty thing anyhow... hihihihi
Grazie mille...me lo guarderò con calma e provo.

Quote:
Originariamente inviato da !fazz Guarda i messaggi

domanda perchè devi concatenare degli unsigned? non fai prima a gestirli come numeri

ps sotto linux mi sa che fai prima a utilizzare i file che una libreria di comunicazione seriale
Questi caspita di vettori devono andare ad un pinza servoelettrica che vuole input (e da in output) esadecimali nel formato "0x01 0x05 0x4F" ecc...

La libreria in questione è un obbligo che mi ha imposto il docente per la portabilità (dice che queste librerie funzionano sia sotto windows che sotto linux, invece le funzioni di "termios" funzionano solo per linux a quel che ho capito)

Il problema più grande però l'ho scoperto questa mattina.

l'array che va inviato deve essere di questo tipo:

"ID" "Group" "D-Len" "Cmd" "Data" "CRC"

Dove:
- ID e Group sono quelli della pinza in questione
- D-Len (1byte) è una sorta di header del comando
- Cmd (1byte) è il codice del comando
- Data (4 byte) sono i parametri del comando (che l'utente di questo programma dovrà poter inserire, ecco perchè mi serve il concatenamento...)
- CRC è un codice di controllo, che è diverso a seconda di quello che mando.

Il problema è come implementare il CRC, e come concatenare insieme tutti sti pezzi in un unico array che va poi inviato alla pinza...

devo farla come "tirocinio" per laurearmi in ingegneria informatica sta roba.....anche se è della facoltà di automazione, io che sto ad informatica ho scelto di fare una cosa diversa per imparare qualcosa, invece mi hanno lasciato completamente solo davanti sta cosa a vedere come risolvere...

Posso garantirvi che gli esami di programmazione, ingegneria del software e quant'altro che ho fatto, non mi servono a niente per fare queste cose...che non ho mai fatto prima.
__________________
Come la chiami la chiami, la cocozza sempre cocozza è.
DomusP45 è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2012, 14:13   #9
!fazz
Moderatore
 
L'Avatar di !fazz
 
Iscritto dal: Nov 2006
Messaggi: 22006
Quote:
Originariamente inviato da DomusP45 Guarda i messaggi
Innanzi tutto grazie a tutti per la disponibilità.



Grazie mille...me lo guarderò con calma e provo.



Questi caspita di vettori devono andare ad un pinza servoelettrica che vuole input (e da in output) esadecimali nel formato "0x01 0x05 0x4F" ecc...

La libreria in questione è un obbligo che mi ha imposto il docente per la portabilità (dice che queste librerie funzionano sia sotto windows che sotto linux, invece le funzioni di "termios" funzionano solo per linux a quel che ho capito)

Il problema più grande però l'ho scoperto questa mattina.

l'array che va inviato deve essere di questo tipo:

"ID" "Group" "D-Len" "Cmd" "Data" "CRC"

Dove:
- ID e Group sono quelli della pinza in questione
- D-Len (1byte) è una sorta di header del comando
- Cmd (1byte) è il codice del comando
- Data (4 byte) sono i parametri del comando (che l'utente di questo programma dovrà poter inserire, ecco perchè mi serve il concatenamento...)
- CRC è un codice di controllo, che è diverso a seconda di quello che mando.

Il problema è come implementare il CRC, e come concatenare insieme tutti sti pezzi in un unico array che va poi inviato alla pinza...

devo farla come "tirocinio" per laurearmi in ingegneria informatica sta roba.....anche se è della facoltà di automazione, io che sto ad informatica ho scelto di fare una cosa diversa per imparare qualcosa, invece mi hanno lasciato completamente solo davanti sta cosa a vedere come risolvere...

Posso garantirvi che gli esami di programmazione, ingegneria del software e quant'altro che ho fatto, non mi servono a niente per fare queste cose...che non ho mai fatto prima.
va be non pare tanto complicato da doversi fasciare la testa prima del dovuto alla fine è semplice programmazione e gestione di stringhe di testo, non è che devi crearti il PID per il controllo del braccio e le matrici di rotazione, sei quasi ingegnere informatico un pò di programmazione devi saperla, altrimenti non saresti qui quindi con calma scomponi il problema in problemi più semplici e con calma risolvili uno ad uno, stai per diventare Ingegnere, non so che idee ti sei fatto ma sei tu quello che devo trovare le soluzioni ai problemi non gli altri, perdersi su una cavolata come una gestione di stringhe non mi pare proprio il caso
implementare il crc è una cavolata immane devi solo capire che tipo di crc usa la pinza e dopo rifare il calcolo sul tuo array prima dell'invio

per concatenare i pezzi puoi usare quello che vuoi, visto che il problema è semplicissimo puoi benissimo farti una funzione dove passati tutti i parametri vai a popolare il vettore carattere per carattere, insomma ti dovrebbe bastare circa la prima metà del primo corso di informatica che hai fatto è un banalissimo vettore vedilo così e risolvi in tempo zero

Quote:
Originariamente inviato da __ZERO_UNO__ Guarda i messaggi
Ho provato usando reinterpret_cast e funziona. Trovi la documentazione qui: http://www.cplusplus.com/doc/tutorial/typecasting/
Nasty nasty thing anyhow... hihihihi
infatti mi pareva strano che il casting non funzionasse visto che char e uchar sono praticamente la stessa cosa
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX)
Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000
!fazz è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2012, 17:38   #10
DomusP45
Senior Member
 
L'Avatar di DomusP45
 
Iscritto dal: Apr 2010
Città: Whiterun
Messaggi: 580
Quote:
Originariamente inviato da !fazz Guarda i messaggi
implementare il crc è una cavolata immane devi solo capire che tipo di crc usa la pinza e dopo rifare il calcolo sul tuo array prima dell'invio
ti posto lo schema di calcolo di CRC che è nel manuale d'uso della pinza. Sapresti tradurlo in una funzione c++? Ti spiego, non capisco la parte finale (il return) come è strutturato. Non si capisce quei simboli come vanno interpretati. Se puoi, aiutami su questo. La concatenazione dei vettori vedrò come risolverla, perchè poi anche il CRC dovrò concatenarci.

Sapresti dirmi come la faccio sta cosa? Grazie infinitamente per la disponibilità

Questo è lo schema che hanno messo nel manuale:



__________________
Come la chiami la chiami, la cocozza sempre cocozza è.
DomusP45 è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2012, 20:45   #11
__ZERO_UNO__
Member
 
L'Avatar di __ZERO_UNO__
 
Iscritto dal: Jul 2009
Città: Milano
Messaggi: 270
Codice:
// La dimensione di unsigned short dipende dal sistema 
// per il quale il programma è compilato. 
typedef unsigned short UInt16; 
// Un Byte, e non ci piove.
typedef unsigned char UInt8;

UInt16 CRC16(UInt16 crc, UInt8 data) 
{
   const UInt16 tbl[256] = { /* ...  */ };
   return ((crc & 0xFF00) >> 8) ^ tbl[(crc & 0x00FF) ^ (data & 0x00FF)];
}
^ = XOR.
>> = shift verso destra.
w & 0xFF00 = restituisce sedici bit dove gl'otto più significativi sono uguali ai corrispondenti in w e il resto zero.
w & 0x00FF = restituisce sedici bit dove gl'otto meno significativi sono uguali ai corrispondenti in w e il resto zero.
__________________

AMD PII x4 955 BE | Sapphire HD4850 Vapor-X 1 GB | Samsung SpinPoint F1 500GB | Samsung EcoGreen F4 2TB
Gigabyte GA-MA790FXT-UD5P | Fractal Design Define R3 USB3.0 Titanium Grey | CORSAIR 650W CMPSU-650TX
Noctua U12P SE2 | 2 x 2GB Kingston 1333 MHz | Samsung SyncMaster P2450 | Samsung SyncMaster T200

Ultima modifica di __ZERO_UNO__ : 14-03-2012 alle 20:55.
__ZERO_UNO__ è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2012, 20:58   #12
mmx[ngg]
Senior Member
 
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 402
Quote:
Originariamente inviato da DomusP45 Guarda i messaggi
Sapresti tradurlo in una funzione c++? Ti spiego, non capisco la parte finale (il return) come è strutturato.
Quella è una funziona...devi solo trascriverla, tra l'altro è scritta in modo molto accademico perchè dovrebbe essere :

return (crc >> 8) ^ tbl[(crc & 0xFF) ^ data];

Tradotto in una lingua più umana :

return (crc / 256) xor tbl[(char)crc xor data];

Tenendo presende che lo shift (>>) è preferibile alla divisione ma i compilatori provvedono da sè quando possono (in presenza di costanti come in questo caso).
__________________
Phenom 2 555 X2@X4@3,6Ghz 1.33v Asus M4A785TD-V EVO 4GB Team Group Elite 1333Mhz AC Freezer Xtreme Corsair 450VX Samsung SyncMaster T220 Hd Seagate 500x2(Raid 0) Barton 2500+@3200+ vcore 1.550 (liquid cooled@+9° T.A.) Asus A7N8X-E Dlx 1Gb Ram Dual DDR Hd Maxtor SATA 160x2(Raid 0) GeXCube 9600XT Eizo 19P Le belle cose hanno un inizio e una fine...tutto il resto è la normalità
mmx[ngg] è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2012, 22:39   #13
DomusP45
Senior Member
 
L'Avatar di DomusP45
 
Iscritto dal: Apr 2010
Città: Whiterun
Messaggi: 580
Quote:
Originariamente inviato da mmx[ngg] Guarda i messaggi
Quella è una funziona...devi solo trascriverla, tra l'altro è scritta in modo molto accademico perchè dovrebbe essere :

return (crc >> 8) ^ tbl[(crc & 0xFF) ^ data];

Tradotto in una lingua più umana :

return (crc / 256) xor tbl[(char)crc xor data];

Tenendo presende che lo shift (>>) è preferibile alla divisione ma i compilatori provvedono da sè quando possono (in presenza di costanti come in questo caso).
cavolo sta cosa dello shift proprio non la immaginavo...grazie! Domani mattina vado in laboratorio e provo a vedere che esce...e vi aggiorno!!
__________________
Come la chiami la chiami, la cocozza sempre cocozza è.
DomusP45 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2012, 19:11   #14
DomusP45
Senior Member
 
L'Avatar di DomusP45
 
Iscritto dal: Apr 2010
Città: Whiterun
Messaggi: 580
l'algoritmo del CRC è andato..solo che non mi restituisce quello che deve. Anzichè restituirmi ad esempio "0x4F 0xf4" mi restituisce "0xF4D0" e nemmeno si trova con quello che dovrebbe essere.

Come mai?

Poi volevo chiedervi :come costruire, all'interno della classe, una sorta di Timeout per la lettura dei dati?

Vorrei costruire una sorta di timer che attenda "tot millisecondi" e poi dichiari il timeout se non arriva risposta...come potrei fare?

Considerando che sto usando una libreria di comunicazione seriale che non prevede tale funzione, dovrei usare time.h...come fare per dare un timeout alla lettura?

Help me please...
__________________
Come la chiami la chiami, la cocozza sempre cocozza è.

Ultima modifica di DomusP45 : 26-03-2012 alle 19:24.
DomusP45 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
AOC propone un QD-OLED al prezzo di un I...
AGCOM segnalerà la AI Mode di Goo...
L'Estonia porta ChatGPT in classe: firma...
2 nm giapponesi contro TSMC: il piano di...
Questa scopa elettrica Tineco iFLOOR 5 è...
FRITZ!Box 6825 4G sbarca in Italia a 129...
Red Hat presenta Digital Sovereignty Rea...
AMD Zen 6 'Olympic Ridge': sette configu...
Amazon batte Walmart dopo 30 anni: il so...
Digos nel mirino dell'intelligence cines...
Sony non vuole aumentare il prezzo della...
Energia geotermica: la (costosa) rispost...
MG ha già venduto 1 milione di au...
"Something Big Is Happening" —...
Renault chiude il 2025 con una perdita r...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:25.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v