elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  alguna alternativa a ilmerge pero para c++?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: alguna alternativa a ilmerge pero para c++?  (Leído 2,149 veces)
Borito30


Desconectado Desconectado

Mensajes: 481


Ver Perfil
alguna alternativa a ilmerge pero para c++?
« en: 13 Enero 2018, 23:16 pm »

En la anterior pregunta no me explique bien lo que estoy buscando es alguna manera de usar mis librerias como recurso embedido en lugar de referencias como cuando uno usa ilmerge pero para c++- Es decir por ejemplo tengo varias dependencias en c++ nativo y quiero que estas dependencias sean incorporadas al fichero como recurso embebido en mi proyecto/programa en c++. Es posible alguna manera facil de resolver estas dependencias como uno en net pero solamente en nativo/managed? Lei sobre costura/fuddy/resource embedder pero no estoy seguro si funcionará en mi proyecto en c++?

necesito que sea recurso no libreria estatica! alguna solucion ! para c++?
saludosss


En línea

Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)
kub0x
Enlightenment Seeker
Colaborador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: alguna alternativa a ilmerge pero para c++?
« Respuesta #1 en: 13 Enero 2018, 23:38 pm »

Lo primero es añadir la DLL como recurso dentro del ejecutable. Segundo cargar el recurso en runtime en un buffer.

Ahora tienes dos formas de cargar dicha DLL en runtime:

La primera es escribir el buffer en disco con formato .DLL. Después cargas la DLL con LoadLibrary y listo. El problema es que guarda en disco, podrias Unlodear la lib al final de la ejecucción y borrarla de disco antes de que termine el programa.

La segunda es implementar tu mismo un loader que cargue la lib en runtime, así no escribes en disco. La ventaja de la primera es que el loader de Win$ ya te la carga. El loader tendrá que mapear la DLL en la memoria virtual del proceso y tener en cuenta ciertos parámetros de las cabeceras PE. Hay material de sobra acerca de esto.

Para llenar un buffer en runtime con el contenido del recurso mira esto: https://stackoverflow.com/questions/9240188/how-to-load-a-custom-binary-resource-in-a-vc-static-library-as-part-of-a-dll

Saludos!


En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

Borito30


Desconectado Desconectado

Mensajes: 481


Ver Perfil
Re: alguna alternativa a ilmerge pero para c++?
« Respuesta #2 en: 15 Enero 2018, 02:53 am »

hola kub0x me parece interesante esto que dices. como dices puedo crear un buffer y mapear mi dll.
sin son varias se complica un poco la cosa.
o usar loadlibrary. lo cual tendría que hacer algun evento para que cargase varias.
En línea

Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)
kub0x
Enlightenment Seeker
Colaborador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: alguna alternativa a ilmerge pero para c++?
« Respuesta #3 en: 15 Enero 2018, 21:12 pm »

hola kub0x me parece interesante esto que dices. como dices puedo crear un buffer y mapear mi dll.
sin son varias se complica un poco la cosa.
o usar loadlibrary. lo cual tendría que hacer algun evento para que cargase varias.

Así es, ya depende de tí cual elegir, si ves que el loader te va a retrasar porque es algo nuevo pues implementa la de LoadLibrary desde disco, total la funcionalidad será la misma y es el método común a no ser que tu proyecto sea un malware (escribir en disco lo haría más detectable).

Saludos!
En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines