• Viernes 8 de Noviembre de 2024, 10:57

Autor Tema:  enlazado de programas?  (Leído 8479 veces)

sebcas

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
enlazado de programas?
« en: Miércoles 6 de Agosto de 2008, 04:45 »
0
un saludo a todos los de solocidigo.

tengo un problema y una duda?

quiero enlazar un programa en c++ con uno en ensamblador
pero no tengo ni idea de como hacerlo.

no se si se pueda tambien enlazar algo de java con c++ o VB
gracas
sebcas

fachamix

  • Miembro MUY activo
  • ***
  • Mensajes: 173
  • Nacionalidad: ar
    • Ver Perfil
Re: enlazado de programas?
« Respuesta #1 en: Miércoles 6 de Agosto de 2008, 15:49 »
0
esto es lo que puedes hacer:

C con Assembler
C++ con Assembler
Pascal con Assembler
Assembler con Assembler

No puedes:
Java con nada
VB con nada
VC con nada ..... etc.


informacion sobre como enlazar un programa escrito en C/C++ con otro en enlambrador, hay a patadas!!!!.

Pero tienes que tener cuidado, no es tan a la chakota como piensas, tampoco es complicado ... para nada, pero entre el programa escrito en C y el otro escrito en ensamblador, tienen que estar en armonia, es decir que si llamas a una funcion desde C a otra que esta en el ensamblador, .... efectivamente ... TIENE QUE ESTAR AHI.

te recomiendo , mira, no estoy en mi PC ahora, pero hay unlibro , exelente, el mejor que e visto sobre este tema, donde el autor te enseña ensamblador usando NASM, y lo va mezclando con C , para que sea mas facil para el usuario.

es decir los prpgramas que vas generando con el libro estan escritos con C y assembler, mesclados. Y llegas a tocar temas muy profundos al final del mismo.

esribi en algun programa para buscar PDFs , la palabra NASM, creo que el autor era algo de Paul o algo asi . buscalo
La muerte vive celosa, de mi amada flor la vida. Dicen que me anda buscando, ojala si un dia me pilla. Me alle MACHAO Y CANTANDO PA QUE SE MUERA DE ENVIDIA

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: enlazado de programas?
« Respuesta #2 en: Miércoles 6 de Agosto de 2008, 16:00 »
0
Cita de: "fachamix"
VB con nada
VC con nada

¿Perdón? ¿Y cómo haces para llamar a las APIs de Windows en ambos lenguajes? ¿Gritando?   :D

Desde TODOS los lenguajes compilables puedes llamar a rutinas escritas en otro lenguaje COMPILABLE. Esto es debido a que al fin y al cabo, todo es lenguaje máquina estando compilado. Sólo queda el truco de saber cómo  :D

fachamix

  • Miembro MUY activo
  • ***
  • Mensajes: 173
  • Nacionalidad: ar
    • Ver Perfil
Re: enlazado de programas?
« Respuesta #3 en: Miércoles 6 de Agosto de 2008, 16:09 »
0
Citar
¿Perdón? ¿Y cómo haces para llamar a las APIs de Windows en ambos lenguajes? ¿Gritando?

no , estan en DLL!!!!!!!!!!!!!!!!!!!!!!!!!!!! que es algo totalmente distinto a lo que nuestro compañero sebcas  quiere.

el quiere ENLAZAR 2 archivos , ya sean fuentes u objetos de 2 lenguajes distintos.

las DLL ............. NO SE ENLAZAN COMO CUALKIER PROGRAMA O CODIGO, DLL = Dynamic Link Library, LAS ENLAZA EL MISMO OS CUANDO SE LAS NECESITA PERO NO FORMAN PARTE DEL ARCHIVO EXE (por ejemplo) DE UN PROGRAMA.

para enlazar 2 archivos objetos  de 2 lenguajes distintos, y formen un unico EXE que se ejecute en armonia, eso es lo que quiere nuestro compañero sebcas .

y repito , si vos me consigues un ejemplo de codigo usando VB y assembler y me genere uno y solo un ejecutable, entonces, yo no tenia razon.

te repito tambien, las DLL , no vienen al caso.

LAS API de windows estan en DLLs
La muerte vive celosa, de mi amada flor la vida. Dicen que me anda buscando, ojala si un dia me pilla. Me alle MACHAO Y CANTANDO PA QUE SE MUERA DE ENVIDIA

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: enlazado de programas?
« Respuesta #4 en: Miércoles 6 de Agosto de 2008, 16:49 »
0
Efectivamente no es lo mismo enlazar codigo objeto que enlazar (estaticamente) una DLL.

Supongamos que sebcas quiere enlazar codigo objeto, no esta explicito pero yo tambien imagino que eso es lo que quiere. Sin ningun problema podes usar VC++ y MASM para hacerlo, hay muchisima informacion en Internet al respecto. En general (con cualquier lenguaje) tenes que hacer coincidir el numero de los parametros y el tipo de pasaje (stdcall, c, etc).

Hay otras formas de "enlazar" codigo, ya sea RPC, COM, etc.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

fachamix

  • Miembro MUY activo
  • ***
  • Mensajes: 173
  • Nacionalidad: ar
    • Ver Perfil
Re: enlazado de programas?
« Respuesta #5 en: Miércoles 6 de Agosto de 2008, 16:51 »
0
cierto, tienes razon ahi, me olvide de MASM.

esa es otra buena combinacion para probar.


pero te sigo recomenando que encuentres ese libro , sino , ya te postiare el nombre

EI: juntando mensajes.

aqui esta, aqui tienes todo, EL PDF y los codigos para el compilador que se te cante.

http://drpaulcarter.com/pcasm/

espero te ayude hermano, se que asi sera
La muerte vive celosa, de mi amada flor la vida. Dicen que me anda buscando, ojala si un dia me pilla. Me alle MACHAO Y CANTANDO PA QUE SE MUERA DE ENVIDIA

sebcas

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: enlazado de programas?
« Respuesta #6 en: Jueves 21 de Agosto de 2008, 03:32 »
0
HEY UN SALUDO

LES AGRADESCO ME A SERVIDO DEMASIADO LO  QUE AN DICHO
PERO AHORA TENGO MAS DUDAS.

COMO HAGO PARA COMPILAR EL CODIGO OBJETO EN UN .EXE UNICO?
LO QUE ENTIENDO ES QUE TAMBIEN SE PUEDE LLAMAR  OTROS PROGRAMAS YA COMPILADOS, POR DECIR UNO EN JAVA
LLAMARLA EN C++, CREO QUE ES ASI NO? PERO COMO SE HACE?
Y LO ULTIMO
TENGO MAS OMENOS LA IDEA DE LAS DLLS, PERO NUNACA E TRABAJADO CON ELLAS, SOLO E GENERADO .EXE,
ME PODRIAN EXPLICAR PARA QUE SIRVEN, COMO SE CREAN Y COMO SE USAN.

MUCHAS GRACIAS
SEBCAS

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: enlazado de programas?
« Respuesta #7 en: Jueves 21 de Agosto de 2008, 08:13 »
0
Un ejecutable siempre se compone de codigo objeto, se los pasas al linker y el te lo construye.

DLL.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: enlazado de programas?
« Respuesta #8 en: Viernes 22 de Agosto de 2008, 09:14 »
0
Sigo insistiendo. Cualquier lenguaje compilable a lenguaje máquina se puede enlazar con cualquier otro compilable a lenguaje máquina. Da igual que sean enlaces dinámicos (DLL) estático. Todo es código ejecutable, binario y por tanto, es lo mismo. El lenguaje en que lo definas sólo sirve para que nosotros pobres humanos nos resulte más fácil entender tanto cero y uno junto. Nunca se debe olvidar que la CPU sólo entiende lenguaje máquina, nada más.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: enlazado de programas?
« Respuesta #9 en: Viernes 22 de Agosto de 2008, 10:23 »
0
Cita de: "m0skit0"
Sigo insistiendo. Cualquier lenguaje compilable a lenguaje máquina se puede enlazar con cualquier otro compilable a lenguaje máquina. Da igual que sean enlaces dinámicos (DLL) estático. Todo es código ejecutable, binario y por tanto, es lo mismo. El lenguaje en que lo definas sólo sirve para que nosotros pobres humanos nos resulte más fácil entender tanto cero y uno junto. Nunca se debe olvidar que la CPU sólo entiende lenguaje máquina, nada más.

No entiendo para que insistis la pregunta ahora fue otra.

sebcas me olvide de pasarte otro enlace: JNI.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: enlazado de programas?
« Respuesta #10 en: Viernes 22 de Agosto de 2008, 12:20 »
0
Insisto porque fachamix sigue sin enterarse de lo que quiero decir. Pero bueno, da igual, creo que con los enlaces que le has dado a sebcas está solucionado.  :good:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: enlazado de programas?
« Respuesta #11 en: Viernes 22 de Agosto de 2008, 12:24 »
0
Cita de: "m0skit0"
Insisto porque fachamix sigue sin enterarse de lo que quiero decir. Pero bueno, da igual, creo que con los enlaces que le has dado a sebcas está solucionado.  :good:

Esta bien, como el mensaje nuevo era de sebcas no entendia mucho  :good:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

fachamix

  • Miembro MUY activo
  • ***
  • Mensajes: 173
  • Nacionalidad: ar
    • Ver Perfil
Re: enlazado de programas?
« Respuesta #12 en: Viernes 22 de Agosto de 2008, 21:53 »
0
Citar
m0skit0 escribió:
Insisto porque fachamix sigue sin enterarse de lo que quiero decir. Pero bueno, da igual, creo que con los enlaces que le has dado a sebcas está solucionado.

y bueno hermano, vos sigues sin entender, que no puedo enlazar 2 "exes". dos obj , si , no hay problema hasta cierto punto, pero 2 "exes" ... no!, en enlazador, no sabria para donde correr. tendrias que extirpar codigo del exe, y eso depende de exe en exe por el compilador que fueron generados. No todos los compiladores generan idnticos exes para un mismo codigo fuente.


NI HABLAR DE COMPILADORES DE LENGUAJES DISTINTOS!!!.

ya te dije, vos enlazame , directamente, 2 ejecutables, de distintos lenguajes, de distinto compiladores, y bueno te dare la razon.


tienes que tener en cuenta muchos detalles de bajo nivel.

sebcas, en el link que te deje "arriva", esta clarito como generar un unico EXE a partir de varios OBJ. en C y assembler

en fin , recien leo tu mensaje y queria contestar. ya estamos en otra cosa. si lo kieres seguir , seguimos por mensajes privados
La muerte vive celosa, de mi amada flor la vida. Dicen que me anda buscando, ojala si un dia me pilla. Me alle MACHAO Y CANTANDO PA QUE SE MUERA DE ENVIDIA

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: enlazado de programas?
« Respuesta #13 en: Sábado 23 de Agosto de 2008, 02:37 »
0
¿Quién ha hablado de exes? Yo hablo de lenguaje máquina, nen. No te excites.  :P

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: enlazado de programas?
« Respuesta #14 en: Sábado 23 de Agosto de 2008, 08:46 »
0
Para algo estan las librerias dinamicas ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

fachamix

  • Miembro MUY activo
  • ***
  • Mensajes: 173
  • Nacionalidad: ar
    • Ver Perfil
Re: enlazado de programas?
« Respuesta #15 en: Lunes 25 de Agosto de 2008, 22:09 »
0
Citar
¿Quién ha hablado de exes? Yo hablo de lenguaje máquina, nen. No te excites.

ve lo ve ??¿¿¿¿???? no te enojes hermano, eso de no te excites esta demas. pero realmente no se que estas hablando


lenguaje maquina, debes creer que son 1 y 0 ´s y no lo es.

1 y 0 , es la representacion  electronica, 1 es un uno logico de electronica, el cero .. bueno esta demas explicar.

opcodes, sin embargo, es la representacion maquina,  este es el lenguaje makina, y de ahi , para arriva.

te recomiendo que leas un pokito, ya te habias equibocado con lo de las APIS, y te estas volviendo a equivocar.
La muerte vive celosa, de mi amada flor la vida. Dicen que me anda buscando, ojala si un dia me pilla. Me alle MACHAO Y CANTANDO PA QUE SE MUERA DE ENVIDIA

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: enlazado de programas?
« Respuesta #16 en: Martes 26 de Agosto de 2008, 09:21 »
0
Paso de ti porque no tienes ni idea. Todos lo conceptos equivocados.

Por cierto, soy ingeniero informático y llevo 10 años programando. Ahora trabajo en I+D en una empresa de ingeniería. Me vas a contar tú lo que es 0 y 1 y lo que es lenguaje máquina :lol:

chuidiang

  • Miembro MUY activo
  • ***
  • Mensajes: 123
  • Nacionalidad: es
    • Ver Perfil
    • http://www.chuidiang.com
Re: enlazado de programas?
« Respuesta #17 en: Martes 26 de Agosto de 2008, 09:43 »
0
Hola:

Con ensamblador debes generar el código y compilarlo como si fuera una librería, de forma que obtienes una .dll o bien como una .lib

Luego, desde C/C++, puedes usar esas librerías. Si es .dll no se mete en el .exe, sino que debes tener ambos ficheros para ejecutar, el .exe y la .dll. Si es una .lib, al compilar el .exe el código de la .lib se meterá dentro del .exe, por lo que una vez generado el .exe, no necesitas para nada la .lib

Se bueno.

fachamix

  • Miembro MUY activo
  • ***
  • Mensajes: 173
  • Nacionalidad: ar
    • Ver Perfil
Re: enlazado de programas?
« Respuesta #18 en: Miércoles 27 de Agosto de 2008, 22:34 »
0
Citar
Paso de ti porque no tienes ni idea. Todos lo conceptos equivocados.

Por cierto, soy ingeniero informático y llevo 10 años programando. Ahora trabajo en I+D en una empresa de ingeniería. Me vas a contar tú lo que es 0 y 1 y lo que es lenguaje máquina


uuuuuu jajajajajajaja, 10 años!!!!!!!, jajajajajajaj que verguenza.

si vos piensas que antes se programaban con unos y ceros, estas de la cabeza, todo se traducia a opcodes ... todo.

hasta las tarjetas , ke tenian perforaciones, no eran unos y ceros, eran los opcodes, expresados en unos y ceros.

gil, no tienes idea de lo ke te hablo, no sabes qu es un opcode, ni idea.

10 años!!!!!!!!! volve a primer grado
La muerte vive celosa, de mi amada flor la vida. Dicen que me anda buscando, ojala si un dia me pilla. Me alle MACHAO Y CANTANDO PA QUE SE MUERA DE ENVIDIA