Article View: es.comp.os.linux.programacion
Article #17740Re: Librerias de Objetos C++
From: batsman batsman
Date: Thu, 11 Nov 1999 00:00
Date: Thu, 11 Nov 1999 00:00
82 lines
3896 bytes
3896 bytes
-----BEGIN PGP SIGNED MESSAGE-----
In article <7vt45n$b5f$1@talia.mad.ttd.net>, Dr. Slump wrote:
>Hola...
>Vereis, resulta que estoy probando el tema de crear y cargar librerias
>compartidas de forma dinamica.
>Ya sabeis, dlopen, dlclose, etc...
>Todo va bien "� como Espa�a ;-) ?" mientras utilizo funciones.
>El problema es que a mi me gusta tirar de C++ a saco, y lo que quiero es que
>las librerias sean de objetos (o clases), y poder cargar esos objetos y
>utilizar sus miembros desde una libreria.
En C++ los nombres de las funciones est�n "mangled", es decir, codifican en
el nombre tanto los tipos de argumentos como el identificador que le das en
el programa. Por ejemplo,
00000000 T ASFile::do_file(char *, Item *)
00000230 T ASFile::do_file(char *, NewsList *)
se transforman en
00000000 T do_file__6ASFilePcP4Item
00000230 T do_file__6ASFilePcP8NewsList
el esquema del mangling es sencillo, como ves: primero el nombre de funci�n,
despu�s "__", el nombre de clase y una secuencia para indicar los
argumentos.
argumento := Clase argumentos
;
Clase := nombre
;
argumentos: /* vac�o */
| nombre argumentos
;
nombre := P numero Nombre
| numero Nombre
;
donde P indica puntero a, y el nombre tiene <numero> letras.
Por ejemplo, para codificar Frobnicator::do_magic(Magic *, char *)
quedar�a as�: do_magic__11FrobnicatorP5MagicPc
Recuerda que al llamar a un m�todo debes pasarle un puntero a this como
primer argumento si lo haces desde C (es un par�metro impl�cito en C++).
En cuanto a lo de crear clases.... a menos que funcione llamar al m�todo
constructor y que devuelva un puntero... Como ves eso de usar librer�as de
clases con el interfaz dl* no es muy c�modo que digamos, y pierdes todas las
ventajas de sobrecarga de operadores, herencia... (tendr�s que hacerlo todo
a mano).
Tal vez te interese echarle un vistazo a EDMA (Entorno Distribu�do Modular
Abierto), que implementa un sistema de clases distribu�das bastante sencillo.
Si no podr�as usar ILU e incluso CORBA.
- --
_ _
| |__ __ _| |_ ___ _ __ ___ __ _ _ __
| '_ \ / _` | __/ __| '_ ` _ \ / _` | '_ \
| |_) | (_| | |_\__ \ | | | | | (_| | | | |
|_.__/ \__,_|\__|___/_| |_| |_|\__,_|_| |_|
________________________________________________________________
|Visit | http://www.geocities.com/SiliconValley/Vista/2075 |
|Linux | http://www.geocities.com/SiliconValley/Vista/4289 |
----------------------------------------------------------------
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: noconv
iQEVAwUBOCsZN70Y27yr0iefAQEThggAnd834PjdzJenK+iQ7RzCHnpVagrF2/56
4Tfh0GLvXPBNdlkGsimJloev3cMEIRP16bSg2JdInXwvyiiW6IR1Svf2mt/aKhml
TYUtogMUp5WVLS6n8hYJhxQJjkQJsZXehjhPOCwU6fYaMz8IRsOcJDaVqdELb3gC
8ByYJf1KMAtRKujxW/APzfPcD36RTh5+MyvhT3Bg9BxAjbrG9iT2UZfV5XQfKkfw
kJbcMol9/6FRBkKpKL9hQxlqm23a8j2W44RY3jph/AZGRnFujdzHuoYLGrJdARUH
IgKUoAuJovyzxPXWy7M+ik0BmxUd0I1CKvswWKFjBRcCYkon4yuFbw==
=HgXk
-----END PGP SIGNATURE-----
Technical Details
Message-ID:
<rg5f08.r61.ln@simpsons4ever>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<7vt45n$b5f$1@talia.mad.ttd.net>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,2d94f0ae1e9b616f,start X-Google-Attributes: gidf86c8,public From: batsman@simpsons4ever. (batsman) Subject: Re: Librerias de Objetos C++ Date: 1999/11/11 Message-ID: <rg5f08.r61.ln@simpsons4ever> X-Deja-AN: 547433064 Content-Transfer-Encoding: 8bit References: <7vt45n$b5f$1@talia.mad.ttd.net> Content-Type: text/plain; charset=iso-8859-1 X-Complaints-To: abuse@uni2.es X-Trace: m2newsread.uni2.es 942347263 62.36.16.6 (Thu, 11 Nov 1999 20:07:43 MET) Organization: Wanadoo Mime-Version: 1.0 Reply-To: Usa el programa de descodificación NNTP-Posting-Date: Thu, 11 Nov 1999 20:07:43 MET Newsgroups: es.comp.os.linux.programacion