Pasar de Char a LPCWSTR

20/09/2004 - 04:10 por Warren Sanchez | Informe spam
hola a la comunidad

Soy novato en VC++ y estoy habituado a utilizar estandares de C o C++.
En mi caso necesito transformar una cadena "char[n]" o "char *" en un tipo
de dato LPCWSTR.

Explicaré mejor lo que quiero hacer:
Estoy realizando un programilla que utilize DShow para reproducir archivos
multimedia.
Para ello utlizo el metodo IGraph::RenderFile cuyo primer parametro es una
cadena de tipo LPCWSTR y que corresponde al nombre del fichero a reproducir.
En los ejemplos q he visto por ahi se utiliza normalmente un literal
entrecomillado:

RenderFile(L"C:\\Example.avi",

(por cierto tampoco entiendo para q se pone esa 'L' antes del literal)

Bueno, pues que en vez de tener q usar un valor estatico quisiera pasarle
una variable de ese tipo para conseguir por ejemplo y alludado del sprintf:

sprintf(buff, "c:\\ejem%d.avi", n);
//"c:\\ejem1.avi" "c:\\ejem2.avi"

Pero falla la correspondencia de tipos al pasarle un char.
Por ello si alguien conoce algun metodo para transformar de un tipo a otro
le agradeceria q me ayudase.

Bueno, espero haber explicado bien mi problema,
gracias por adelantado
y un saludo
 

Leer las respuestas

#1 Sergio
20/09/2004 - 08:19 | Informe spam
Warren Sanchez wrote:
hola a la comunidad

Soy novato en VC++ y estoy habituado a utilizar estandares de C o C++.
En mi caso necesito transformar una cadena "char[n]" o "char *" en un tipo
de dato LPCWSTR.

Explicaré mejor lo que quiero hacer:
Estoy realizando un programilla que utilize DShow para reproducir archivos
multimedia.
Para ello utlizo el metodo IGraph::RenderFile cuyo primer parametro es una
cadena de tipo LPCWSTR y que corresponde al nombre del fichero a reproducir.
En los ejemplos q he visto por ahi se utiliza normalmente un literal
entrecomillado:

RenderFile(L"C:\\Example.avi",

(por cierto tampoco entiendo para q se pone esa 'L' antes del literal)

Bueno, pues que en vez de tener q usar un valor estatico quisiera pasarle
una variable de ese tipo para conseguir por ejemplo y alludado del sprintf:

sprintf(buff, "c:\\ejem%d.avi", n);
//"c:\\ejem1.avi" "c:\\ejem2.avi"

Pero falla la correspondencia de tipos al pasarle un char.
Por ello si alguien conoce algun metodo para transformar de un tipo a otro
le agradeceria q me ayudase.

Bueno, espero haber explicado bien mi problema,
gracias por adelantado
y un saludo






prueba con esto:
LPCSTR str = buff; //char *buff

pGB->RenderFile(CA2W(str),NULL); // IGraphBuilder *pGB


A mi me funciona :)

Preguntas similares