Hola gente , aqui de nuevo comentando dudas sobre c++
Pues haber, la cuestion es que yo tengo un exe , y lo leo en modo binario a través de un char , y lo copio en memoria con un puntero char , que apunta al principio de memoria reservada con malloc. Hasta ahi creo que bien , he hecho alguna comprobación y lo escribe, luego creo un exe para escribier en el , y copio el codigo con el char, pero el exe se queda en 0 bytes (1, o 2 "toqueteando" en codigo). Tambien e probado a leerlo y escribirlo directamente , sin usar el char.
No me compilaba usando read , alguien entiende mi problema , esta familiarizado con el , o me puede ayudar ???
Bueno gente gracias por vuestro tiempo ;)
ok , allá va , pongo lo esencial con sus somentarios (aqui no uso el char , es un ejemplo de lo que intento hacer):
Vale , esto seria la base , he probado diversas combinaciones (cambiando get y put por >> y <<, usando un char como intermediario), pero no logro que funcione, almacenandolo en una tabla si que me sale , el problema lo tengo al usar malloc .
Código: Seleccionar todo
//reservo memoria y la inicializo a 0
char *buffer = (char*)malloc(tam_reserv);
memset (buffer,0,tam_reserv);
//copio el binario al buffer , desde la posicion "x" del stub
do{
exe.seekg (pos_lec, ios::beg);
*buffer = exe.get();
buffer++;pos_lec++;
}while(!exe.eof());
//copio del buffer al fichero de salida
char *aux = buffer;
for (int i = 0;i==tam_fich;i++,aux++){
nuevo_exe.put (*aux);
}
Bueno pues informar de que el problema ya esta solucionado ¡¡
Se puede hacer como explico arriba , el problema lo tendria en otra parte del codigo , algun errorcillo como decia DRINKY94
despues de hacer alguna comprobaciones y algunos cambios , aparentemente sin importancia , pues algo tenia mal y ya lo toqué
funciona correcto ;)
Se puede hacer como explico arriba , el problema lo tendria en otra parte del codigo , algun errorcillo como decia DRINKY94
despues de hacer alguna comprobaciones y algunos cambios , aparentemente sin importancia , pues algo tenia mal y ya lo toqué
funciona correcto ;)