Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Visual studio 2010

Estas en el tema de Visual studio 2010 en el foro de C/C++ en Foros del Web. Estoy intentando utilizar fstream con visual studio y quiero cojer la ruta de un textbox para que abra ese archivo , pero me dice que ...
  #1 (permalink)  
Antiguo 07/11/2011, 12:05
 
Fecha de Ingreso: agosto-2011
Mensajes: 17
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta Visual studio 2010

Estoy intentando utilizar fstream con visual studio y quiero cojer la ruta de un textbox para que abra ese archivo , pero me dice que no puedo utilizarlo por que la funcion para abrir archivos utiliza una cadena de caracteres y el text box es system string. He googleado y he encontrado un codigo:

Código:
// Conversion String a char
				 String^ str = gcnew String("hola mundo");
				 IntPtr p = Marshal::StringToHGlobalAnsi(str);
				 char* Ruta = static_cast<char*>(p.ToPointer());
				 Marshal::FreeHGlobal(p);
Pero al comprobar si hacia bien la conversion no la hace...en vez de salir hola mundo sale @%/i) y cosas asi...alguien sabe como hacer la conversion o si hay alguna otra forma de trabajar con archivos sin tener que hacer tooooodo el rato conversiones para visual studio? Gracias!
  #2 (permalink)  
Antiguo 07/11/2011, 15:41
 
Fecha de Ingreso: enero-2011
Ubicación: Venezuela, Táchira
Mensajes: 96
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: Visual studio 2010

Hola no se en Visual Studio pero por lo menos en Builder C++ hay una funcion que se llama c_str(); y se usa asi cadenaString.c_str(); esto devuelve un array de caracteres.
  #3 (permalink)  
Antiguo 08/11/2011, 09:32
 
Fecha de Ingreso: agosto-2011
Mensajes: 17
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Visual studio 2010

Muchas gracias gorystyle me sirvio de ayuda.Ahora os copio la solucion para pasar de System::String a std::String y a una cadena de caracteres por si a alguien le es util.

Código:
string os;
const char* chars = (const char*)                
(Marshal::StringToHGlobalAnsi(VARIABLE EN SYS::STRING)).ToPointer();
os = chars;
Marshal::FreeHGlobal(IntPtr((void*)chars));
// os es nuestra nueva variable en std::string
				
// Canvio a char
    string s(os);
    char *h = strdup(s.c_str());
// h es nuestro std string convertido en cadena
  #4 (permalink)  
Antiguo 08/11/2011, 15:23
 
Fecha de Ingreso: enero-2011
Ubicación: Venezuela, Táchira
Mensajes: 96
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: Visual studio 2010

para eso estamos amigo! si tienes cuenta en Google+ estas invitado a checar el grupo de programacion que tenemos alli saludoshttps://plus.google.com/103054300676540326333

Etiquetas: std, string, studio, system, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:50.