Cambiar el icono de mi .exe resource hacker

Iniciado por Borito30, 11 Diciembre 2016, 22:19 PM

0 Miembros y 1 Visitante están viendo este tema.

Borito30

Hola he cambiado el icono de mi programa con resource hacker pero esque a veces lo que me pasa es que se me corrompe e lfichero y se vuelve en un fichero corrupto de 16 bits alguien sabe el motivo o entiendo sobre este error?. Parece ser que cuando cambio el icono al .exe creado por el joiner me lo cambia a todos mis programas dentro del .exe entonces se joden algunos ya que cambian los resources. No sé como podría cambiar el icono sin afectar a los resources de los otros que estan juntos en uno solo. :laugh:

Edito: lo que hago es crear una trama de datos y añadirle los diferentes ficheros. Cuando ejecuto los expulso y los cargo desde la ubicación de los ficheros temporales. Problema que cuando cambio el icono del .exe en el que viene todos juntos me los cambia a todos y algunos ficheros o ejecutables se corrompen. Por eso tenía esa duda. También como explicastes es útil entender un poco el formato PE y los recursos. No sé si haga bien en mi caso. De todos modos si chequeastes el post y me sugirieras algo a lo mejor podría modificarlo.

Lo que si no entendi si pongo el exe joineado en los recursos. Es decir incluir estos recursos a mi exe nuevo completo(con todos los .exe..) o como? :-*
Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)

MCKSys Argentina

Depende de cómo trabaje tu joiner (si crea un exe nuevo y pone el exe joineado en los recursos y luego lo extrae o si sólo lo pone como overlay) el editor de recursos va a enocntrar o no el ícono del ejecutable principal.

Deberías analizar la estructura PE y cómo trabaja la sección de recursos para poder entender qué es lo que está fallando en tu joiner.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Borito30

#2
Solucionado.
Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)

MCKSys Argentina

Por lo que veo y entiendo, archivoStub contiene el ejecutable donde vas a agregar los demás EXEs como overlay.

La pregunta es si esa variable tiene algo o no al momento de ejecutar el código. Si tiene un exe ya armado, la resultante sería ese  exe con 2 ejecutables más agregados como overlay, 1 tras otro.

Ahora, si está vacía, entonces te quedará el primer ejecutable y el segundo agregado como overlay.

En ambos casos, dependerá del editor de recursos el manejo de los overlays, ya que no son parte del exe, sinó info anexada al mismo.

Por eso puede ser que se te esté rompiendo al editar recursos.

Saludos!

PD: Te repito nuevamente: vas a tener que estudiar la estructura PE y el funcionamiento de la misma en Windows.
PD2: Si has copiado un stub de un joiner, deberías, al menos, entender cómo funciona y porqué hace lo que hace. Si lo has hecho tú, vas a tener que mejorar el código para crear un exe con secciones agregadas a mano, manejo de recursos, etc, etc.
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Borito30

#4
Solucionado.
Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)

MCKSys Argentina

Cita de: AmazingDopi en 12 Diciembre 2016, 13:21 PM
... te paso el código para que lo chequees...

No tengo el tiempo de chequear semejante cosa. Lo lamento, pero vas a tener que hacerlo tú.

Cita de: AmazingDopi en 12 Diciembre 2016, 13:21 PM
De todos modos con lo que me has dicho pienso que si añado el stub como recurso (como la información se añade a el stub) y modifico el icono del archivosalida (el archivo que obtengo al juntar todos mis archivos) no habría ningun problema. creo?

Si colocas el stub como recurso de otro exe: cómo lo ejecutarás? No puedes hacer éso (en realidad sí, pero necesitas redirigir el EP del EXE y hacer la sección ejecutable y eso lleva a diferentes cosas). Lo que *podrías* hacer es que tu stub agregue los exes a joinear como recursos, luego cuando se ejecute los mapee en memoria, ahuece el primero (el que quieres emular) y lo rellenes con el segundo. No es una tarea sencilla, pero tampoco imposible. Lo que sí es ardua porque deberás tratar con relocaciones (si el EXE lo permite).

En fin, no es tan sencillo como parece. Quizás deberías dejar todo como está y modificar el icono del exe antes de joinear.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


apuromafo CLS

lo que no entiendo es como configuras los recursos

una idea
http://qtpasion.blogspot.cl/2011/02/qt-windows-como-poner-el-icono-nuestro.html
http://doc.qt.io/qt-4.8/appicon.html
https://www.youtube.com/watch?v=UDhLL1sNmSo
http://stackoverflow.com/questions/1460361/how-to-set-application-icon-in-a-qt-based-project


hay muchos ejemplos en google
CitarPues en caso de que lo quieras compilar con g++ para windows:

//creas resource.rc con la siguiente linea:
Código C++:
Ver original
id ICON "myicon.ico"


//compilarlo:
Código ms-dos:
Ver original
windres resource.rc -o coff -o resource.o

//crear el cxx o cpp con tu codigo

//compilarlo:
Código ms-dos:
Ver original
g++ -Wall -c main.cxx

//construirlo:
Código ms-dos:
Ver original
g++ -Wall -o main main.o resource.o -mwindows

//mwindows para que no muestre consola, en caso contrario omitelo

Borito30

#7
Gracias por vuestra ayuda. Lo que estaba intentando era eso que los ficheros que añado a mi stub no se les modifique los resources porque algunos se corrompen.
Como dices modificar el icono al exe antes de joinear pero también se jode eso es lo curioso de todos modos me decantaré por eso..
Y las fuentes de qt gracias pero al ser diferentes aplicaciones en un mismo proyecto usando joiner por lo que no sé si incluya o sea una solución ya que se agrega a el proyecto.
Y aqui una imagen del error que me da de una aplicación simplemente por cambiarle el icono:

Osea que el tema de los resources es delicado!

Lo suyo sería asignarle los resources a archivosalida previamente pero yo los voy a unir y luego creo archivosalida.

Chequeando y al lio.!
Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)

Borito30

Solucionado cambia el icono al stub y con eso uno tiene el nuevo icono ya que lo que hago obtener el archivo con mi stub así el icono será el mismo.
Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)