| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
mambonegro
Registrado: 24 Oct 2007 Mensajes: 2
| Publicado: 24/10/2007 11:39 am | | | Título: Problema con wchar_t |
| Hola a todos. Necesito algo de ayuda en lo siguiente:
wchar_t **m_pSzPrefixParticles; m_pSzPrefixParticles = new wchar_t * [nLines]; wchar_t* szFirst = new wchar_t[nChars+2];
while (!feof(filename)) { getUnicodeLine(filename,szFirst,nChars); m_pSzPrefixParticles[cLinea] = new wchar_t[wcslen(szFirst)+1]; wcscpy(m_pSzPrefixParticles[cLinea], szFirst);
prefixesListOrdering(cLinea, nChars); cLinea ++; }
En este bucle se lee desde un fichero Unicode. GetUnicodeLine nos retorna es szFirst el contenido de una linea entera de texto. Bien, los valores que voy recogiendo en szFirst son correctos. Pero a la hora de pasar la cadena de texto a la estructura m_pSzPrefixParticles me escribe la dirección de memoria de szFirst, y no su contenido.
En este caso sería necesario pasar la cadena con *szFirst, pero entonces no me compila, y me suelta el siguiente error: error C2664: 'wcscpy' : cannot convert parameter 2 from 'unsigned short' to 'const unsigned short *'
Alguien sabría decirme qué es lo que estoy haciendo mal? Muchas gracias de antemano. |
|
| Volver arriba | |
 |
digies
Registrado: 18 Nov 2005 Mensajes: 240 Ubicación: Cono Sur
| Publicado: 24/10/2007 1:09 pm | | | Título: |
| Hola
Qué compilador usas?
Un saludo |
|
| Volver arriba | |
 |
cheroky
Registrado: 22 Sep 2005 Mensajes: 1372 Ubicación: En ecx esperando un call
| Publicado: 24/10/2007 1:34 pm | | | Título: |
| No se aprecian errores evidentes, salvo que se desconoce los argumentos formales de getUnicodeLine.
El error:
| Código: | error C2664: 'wcscpy' : cannot convert parameter 2 from 'unsigned short' to 'const unsigned short *' |
Se debe a que la función espera un puntero tal que: const wchar_t * y tú le pasas una indirección de dicho puntero, en otras palabras un objeto de tipo const wchar_t al aplicar el operador de indirección sobre szFirst
S2. _________________ - Explícito es mejor que implícito. - Simple es mejor que complejo. - Complejo es mejor que complicado. - Plano es mejor que anidado. - Ralo es mejor que denso. |
|
| Volver arriba | |
 |
|
mambonegro
Registrado: 24 Oct 2007 Mensajes: 2
| Publicado: 24/10/2007 2:34 pm | | | Título: |
| Bueno, parece que efectivamente es correcto. Haciendo printf's de esta manera:
wprintf(L"%s", m_pSzPrefixParticles[k]);
He podido ver que se van printando bien las lineas por pantalla, sin embargo en memoria (que es como estaba debugando) me escribe siempre el valor del puntero, no su contenido. No acabo de entender eso. El caso es que ya está solucionado, aunque si tenéis tiempo y ganas os agradecería el que pudierais explicármelo jeje.
Muchas gracias a los dos!!! |
|
| Volver arriba | |
 |
|
|