In some of its API function Microsoft usa il formato "multistringa" per specificare un elenco di stringhe.Dettagli sul formato multistringa Microsoft
Come ho capito, una stringa multipla è un buffer con terminazione null di stringhe con terminazione null concatenata. Ma questo può anche essere interpretato come una lista di stringhe, separate da un carattere nullo e terminate da due caratteri nulli.
Ecco un esempio. Un elenco composto dai seguenti elementi:
diventa:
apple\0banana\0orange\0\0
Ma ora mi chiedo:
Come sarebbe un lista vuota essere rappresentato?
sarebbe:
\0
Oppure:
\0\0
non sono riuscito a trovare una documentazione accurata che chiarisce questo. Qualche indizio?
L'ultima stringa in una "lista stringa" è la stringa di lunghezza zero. Un singolo \ 0 è quindi sufficiente per terminare. –
Mi chiedo come funzioni con UTF-8 e con i suoi caratteri multibyte? – Piskvor
L'API di Windows non supporta UTF-8 :-(Ma se lo facesse, non cambierebbe nulla perché i caratteri multibyte UTF-8 non includono mai \ 0. – dan04