<%@ Page Language="VB" ResponseEncoding="iso-8859-1" Inherits="AACPage" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.Oledb" %> <%@ import Namespace="System.Data.ODBC" %> <%@ Register TagPrefix="aac" TagName="header" Src="~/header.ascx" %> <%@ Register TagPrefix="aac" TagName="footer" Src="~/footer.ascx" %> <%@ Register TagPrefix="aac" TagName="telaioHeader" Src="~/service/include/telaio_header.ascx" %> <%@ Register TagPrefix="aac" TagName="telaioFooter" Src="~/service/include/telaio_footer.ascx" %> <%@ Register TagPrefix="aac" TagName="autoreFile" Src="~/service/include/autore_file.ascx" %> <%@ Register TagPrefix="aac" TagName="aggiornamenti" Src="~/service/include/aggiornamenti.ascx" %> <%@ Register TagPrefix="aac" TagName="ultimiPost" Src="~/forum/inc_ultimi_post.ascx" %> <%@ Register TagPrefix="aac" TagName="ultimiPost3" Src="~/forum/inc_ultimi_post_nuovo.ascx" %> <%@ Register TagPrefix="aac" TagName="aspect" Src="~/service/include/aspect.ascx" %> <%@ Register TagPrefix="aac" TagName="adsenseGenerator" Src="~/service/include/adsense_generator.ascx" %> <% 'Il controllo per il paging correntemente registrato qua e l, ma andrebbe 'eliminato da tutte le parti e messo qui '<'%@ Register TagPrefix="aac" TagName="paging" Src="~/service/include/paging.ascx" %'> %> ArcadiA Club - Symbian OS C++ | Contenitori di dati: descrittori, package e array <% sez_id = 18 immm = "programmazione" categoria = 1 #CONST aspect_asp = 0 forum_id_asp = "16" sc_asp = 1 %> <%-- --%>
 
- Contenitori di dati: descriptor, package e array -
 
COSA SERVE PER QUESTO TUTORIAL
Download | Chiedi sul FORUM | Glossario Un computer che esegue Windows
Stringhe e array con C++ su Symbian OS

TABELLA DEI VARI CONTENITORI
Lista con spiegazione dei vari contenitori (array, stringhe, ecc.) disponibili in Symbian OS

Riportiamo di seguito una tabella con elencati i principali metodi per memorizzare dati in C++ su Symbian. I descrittori possono essere usati come stringhe (testuali o di byte) da 8 o 16 bit: ognuno dei tipi elencati di seguito pu avere come suffisso 8 o 16 a seconda se i dati trattati devono essere considerati come byte singoli o a coppie (stringhe di testo Unicode ad esempio). Se non si specifica nulla, verr utilizzato uno dei due tipi di default, su Series 60 quello a 16 bit.
La tabella seguente non intende essere una spiegazione dettagliata di tutti questi tipi, ma solo uno schema per ricordarli e per individuare subito quale pi adatto ad una certa esigenza. Per ulteriori informazioni consultare il progetto in allegato.

Tipologia Classe
Descrittori
TDesC
Indica un descrittore generico non-modificabile, solo riassegnabile o modificabile tramite Des(), che restituisce un TPtr. un tipo base, usato nelle firme delle funzioni, non pu essere instanziato direttamente.
 

TDes
Indica un descrittore generico modificabile. un tipo base, usato nelle firme delle funzioni, non pu essere instanziato direttamente.
 

TBufC
Non modificabile (solo riassegnabile o modificabile tramite Des(), che restituisce un TPtr), a lunghezza fissa, allocato sullo stack.
 

HBufC
Non modificabile (solo riassegnabile o modificabile tramite Des(), che restituisce un TPtr), a lunghezza fissa, allocato sull'heap.
 

TPtrC
Puntatore ad un descrittore senza API modificabile, la dimensione e i dati sono non appartengono a questo oggetto.
 

TBuf
Modificabile, con una granularity iniziale, proprietario dei dati, sullo stack.
 

TPtr
Puntatore ad un descrittore con API modificabile, la dimensione e i dati sono da un'altra parte.
 
Package
TPckg
Pu contenere qualunque tipo di dato e permette di accedere a tutti i suoi byte attraverso [], e ne permette la modifica. L'operatore () fa accedere all'oggetto.
 

TPckgC
Pu contenere qualunque tipo di dato e permette di accedere a tutti i suoi byte attraverso [], ma non ne permette la modifica. L'operatore () fa accedere all'oggetto.
 

TPckgBuf
Crea una copia di qualunque tipo di dato, permette di accedere a tutti i suoi byte attraverso [], e ne consente la modifica. L'operatore () fa accedere all'oggetto.
 
Array semplici
RArray
Array di oggetti a lunghezza fissa (classi T o R), proprietario dei dati. situato sullo stack e non permette di memorizzare dati oltre i 640 byte. Ha un'API di inserimento, appending, operatore [] e At.
 

RPointerArray
Array di puntatori a oggetti di qualsiasi tipo. situato sullo stack ma i dati risiedono altrove. Ha un'API di inserimento, appending, operatore [] e At.
 
Array avanzati
CArrayFixFlat
Array con allocazione infrequente, solo oggetti a larghezza fissa (classi T o R).
 

CArrayVarFlat
Array incon allocazione infrequente, solo oggetti a larghezza variabile (classi T o R).
 

CArrayPtrFlat
Array con allocazione infrequente, puntatori ad oggetti di qualunque tipo.
 

CArrayPakFlat
Array in un'unica cella heap, solo oggetti a larghezza variabile (classi T o R).
 

CArrayFixSeg
Array segmentato, solo oggetti a larghezza fissa (classi T o R).
 

CArrayVarSeg
Array segmentato, solo oggetti a larghezza variabile (classi T o R).
 

CArrayPtrSeg
Array segmentato, puntatori ad oggetti di qualunque tipo.
 


Nel progetto allegato vi una funzione che dimostra l'utilizzo di ognuno di questi tipi (ad esempio quella che spiega il funzionamento di RArray chiamata RArrayEx); il progetto basato su console. Se si hanno dubbi sul significato di termini come granularity, heap e stack riferirsi al glossario.

 

<< INDIETRO by VeNoM00