Pasar tipo String__gc * a CHAR

26/01/2005 - 23:24 por Warren | Informe spam
Hola al grupo

Estoy intentando realizar una aplicacion q realize una serie de operaciones
con archivos de texto. Soy muy novato con la WinAPI y realizo el tratamiento
de Streams con lo típico de ANSI C ( fopen...).

Pero estoy intentando hacer una interfaz modo vetana con las Windows Forms
del Visual Studio. Entonces para la apertura de los archivos primero llamo a
un FileDialog para q permita al usuario elegirlo. El problema q tengo es q
no sé como tratar el fichero una vez elegido, sobre todo por los tipos con
los q trabaja. Lo q habia pensado es mediante la siguiente llamada recoger
el nombre del fichero en una cadena y utilizar luego un fopen, algo asi:

cadena= openFileDialog1->get_FileName();

fopen( cadena, "w");



Pero esta llamada no devuelve un tipo CHAR sino un tipo String__gc *, sino
me equivoco.

Si alguien me pudiera decir como paso de este tipo a un CHAR se lo
agradeceria mucho.

Espero haber explicado bien mi problema y q alguien me pueda ayudar

Gracias por adelantado

Un Saludo!!

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
27/01/2005 - 09:48 | Informe spam
Lo primero de todo aclarar algún cocepto

Windows Forms son parte del .Net Framework, no son parte del API Win32. Por
lo tanto tu programa utilizara el .Net Framework para correr. Si es esto lo
que quieres perfecto, pero entonces el camino adecuado para manejar ficheros
seria utilizar las clases que proporciona el .Net Framework, utilizando por
ejemplo la clase TextReader de el namespace System.IO. Ahora esta intentando
mezclar código manejado con codigo nativo (fopen) y no es que no se pueda,
de hecho VC++.NET es el unico lenguaje .Net que soporta esto, pero no me
parece buena idea a no ser que estes intentando migrar código antiguo o
asi...

Si lo que quieres es un programa nativo, que no necesite el .Net Framework
para correr el camino a seguir es MFC o WTL. Si estas comenzando te será más
facil MFC.

De todos modos y dicho lo anterior:

String *psString = S"Hola"; //Cadena manejada (String_gc)
__wchar_t __pin *wszString = ::PtrToStringChars(psString); //Conversión a
cadena nativa

Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#2 Warren
27/01/2005 - 10:44 | Informe spam
Muchas gracias Rodrigo.
En realidad mi objetivo era migrar un código q habia realizado ya, y con
bastante apuro debo admitir, por eso creí q mantener el tratamiento de
ficheros me ahorraria mucho tiempo ya que no tengo ni idea de manejarlos
con .Net FrameWork. Debo agradecerte ademas del formato para cambiar de
tipo, tambien la aclaracion q me has hecho.

Gracias de nuevo
Un Saludo!





"Rodrigo Corral [MVP]" escribió en el mensaje
news:O%23$
Lo primero de todo aclarar algún cocepto

Windows Forms son parte del .Net Framework, no son parte del API Win32.
Por lo tanto tu programa utilizara el .Net Framework para correr. Si es
esto lo que quieres perfecto, pero entonces el camino adecuado para
manejar ficheros seria utilizar las clases que proporciona el .Net
Framework, utilizando por ejemplo la clase TextReader de el namespace
System.IO. Ahora esta intentando mezclar código manejado con codigo nativo
(fopen) y no es que no se pueda, de hecho VC++.NET es el unico lenguaje
.Net que soporta esto, pero no me parece buena idea a no ser que estes
intentando migrar código antiguo o asi...

Si lo que quieres es un programa nativo, que no necesite el .Net Framework
para correr el camino a seguir es MFC o WTL. Si estas comenzando te será
más facil MFC.

De todos modos y dicho lo anterior:

String *psString = S"Hola"; //Cadena manejada (String_gc)
__wchar_t __pin *wszString = ::PtrToStringChars(psString); //Conversión a
cadena nativa

Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org

Respuesta Responder a este mensaje
#3 Rodrigo Corral [MVP]
27/01/2005 - 12:54 | Informe spam
Un placer ayudar!!!


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida