dlsym() vs. C/C++

Miguel Cárdenas mcmail_y2k en yahoo.com
Sab Nov 25 16:45:26 CST 2000


Holas!!!

Que onda chavos, ya se que onda con esto... con el compilador de C las
funciones las acceso con su mismo nombre, pero el compilador de C++ ocurre que
le "pega" algo mas al nombre de la funcion... pense que ya la habia librado,
pero orita descubri que siempre le pega algo diferente, por lo cual no puedo
hacer librerias sin saber cual es el nombre final que tendra la funcion en el
codigo objeto...

Por ejemplo, supongamos que tengo una funcion 

   int Sumar (int a, int b) { return a+b; }

si este codigo lo compilo con el compilador de C, la funcion resultante se
llama Sumar y la acceso con dlsym(handle,"Sumar"); pero resulta que si compilo
con el compilador de C++ le cambia el nombre a la funcion, bueno mas bien le
agrega algo mas... pero depende en conjunto con que compile la libreria para
que el nombre cambie, a veces es Sumar__Fii en otras ocaciones Sumar__FPsadf
y letras diferentes... necesito que independientemente de con que otra chiva se
compile la libreria, la funcion siempre tenga el mismo nombre...

La idea es... porque no uso C ??? porque tengo clases definidas, y a la vez
funciones normales que hacen uso de objetos internamente... por lo mismo debo
compilar como C++

Alguna sugerencia??? me tomo 2 dias descubrir que pasaba, ora necesito saber
como solucionar esto... osea solo necesito saber si es posible que en el codigo
objeto una funcion (normal, no miembro de una clase) no cambie su nombre...

Gracias!!!

-- 

						 Miguel Cárdenas
						--------------------
						mcmail_y2k en yahoo.com

II Milenio Sistemas
http://orbita.starmedia.com/~iims
---------------------------------------------------------
para salir de la lista, enviar un mensaje con las palabras
"unsubscribe ayuda" en el cuerpo a majordomo en linux.org.mx



Más información sobre la lista de distribución Ayuda