En some of its API function Microsoft usa el formato "multi-cadena" para especificar una lista de cadenas.Detalles sobre el formato de múltiples cadenas de Microsoft
Según tengo entendido, una multitradena es un búfer terminado en nulo de cadenas concatenadas terminadas en nulo. Pero esto también se puede interpretar como una lista de cadenas, separadas por un carácter nulo y terminadas por dos caracteres nulos.
Aquí viene un ejemplo. Una lista compuesta por los siguientes elementos:
se convierte en:
apple\0banana\0orange\0\0
Pero ahora me pregunto:
¿Cómo una lista vacía estar representados?
¿Sería:
\0
O:
\0\0
no pude encontrado una documentación precisa que aclara esto. Cualquier pista ?
La última cadena en una "lista de cadenas" es la cadena de longitud cero. Un único \ 0 es suficiente para terminar. –
¿Me pregunto cómo funciona esto con UTF-8 y sus caracteres multibyte? – Piskvor
La API de Windows no es compatible con UTF-8 :-(Pero si lo hiciera, nada cambiaría porque los caracteres UTF-8 multibyte nunca incluyen \ 0. – dan04