Visual C++ .NET - Problema con tellg

 
Vista:
sin imagen de perfil
Val: 5
Ha mantenido su posición en Visual C++ .NET (en relación al último mes)
Gráfica de Visual C++ .NET

Problema con tellg

Publicado por jose (2 intervenciones) el 16/11/2020 15:58:54
Hola a todos. Hice esta función para conocer el tamaño en bytes de un archivo cuyo nombre se pasa por teclado::
1
2
3
4
5
6
7
8
int LongArchivo(string NameFile) {
	ifstream Archivo;
	Archivo.open(NameFile, ios_base::binary);
	Archivo.seekg(0, ios_base::end);
	int Tamanio = Archivo.tellg();
	Archivo.close();
	return Tamanio;
}
El caso es que funciona...cuando quiere. Esta tarde le añadí más código al programa y al parecer ya no quiere funcionar.
El error que da es éste:
1
warning C4244: 'inicializando': conversión de 'std::streamoff' a 'int'; posible pérdida de datos.
Y sinceramente no entiendo qué es lo que pasa. Sin más código alrededor no da ningún tipo de problema.
El programa lo hice originalmente en "code::blocks" y al compilarlo y ejecutarlo ni siquiera sale la primera línea del "main" (que es un cout, y hasta donde se,debería salir aunque luego diese otro error).Luego lo pase al visual c++,adaptando un par de detalles(como que el codeblocks me dejaba crear arrays con variables y el visualc++ no, tuve que crear arrays con memoria dinámica) y al poner el programa entero y compilarlo y ejecutarlo el único error que no puedo arreglar es ese. Me dice que el programa compilado no es una aplicación Win32 válida, y como unica pista tengo ese warning.
Si alguien supiera decirme lo que pasa me ayudaría mucho. Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 5
Ha mantenido su posición en Visual C++ .NET (en relación al último mes)
Gráfica de Visual C++ .NET

Problema con tellg

Publicado por jose (2 intervenciones) el 16/11/2020 16:36:18
Vale, ya me di cuenta, lo pase a unsigned, hjce un cast a int y ya
1
unsigned int Tamanio =(unsigned int)Archivo.tellg();
Así me quité el warning, pero me sigue diciendo que no es una aplicación win32 válida, aunque no me da ningún otro error. De verdad que no entiendo lo que pasa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar