Hola que tal, el problema es el siguiente, cuando el programa se ejecuta y hace un for en busca de unas marcas ( '*' y '°') este no las encuentra.
Depure el programa y lo que me salio fue: "Se ha producido una violacion de acceso a memoria", el contador i estaba en: "16444".
El codigo de busqueda es el siguiente:
for(int i=0;i<tamanio;i++)
{
if(buffer[i] == '*' && buffer[i+1] == '*')
{
exe1 = buffer+i+2;
a = i+2;
break;
}
Y el codigo donde se agregan las marcas es el siguiente:
void crearFichero(char* buffer1, int tamanio1, char* buffer2, int tamanio2)
{
char info[1];
char info2[1];
info[0] = '*';
info[1] = '*';
info2[0] = '°';
info2[1] = '°';
CopyFile("main.exe","bindedm.exe",TRUE);
ofstream escritura1("bindedm.exe", ofstream::binary | ofstream::app);
escritura1.write(info, strlen(info));
escritura1.write(buffer1, tamanio1);
escritura1.write(info2, strlen(info2));
escritura1.write(buffer2, tamanio2);
escritura1.close();
}
Aver quien me da una mano.
Gracias
haber te da un error por qe la array se sale de tamaño en "buffer[i+1] == '*' " por que cuando llega al ultimo elemento tu le sumas uno en la posicion (i) y te sales fuera de la array. Lo que veo raro es que el error no sea array no found o algo parecido
Mmm no, probe poniendo solo if buffer == '*' y sale exactamente el mismo error, cuando i llega a 16.444 crashea.
Saludos