Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Dado un objeto obtener la lista de procs and functions (https://www.clubdelphi.com/foros/showthread.php?t=87678)

avmm2004 10-02-2015 19:28:58

Dado un objeto obtener la lista de procs and functions
 
Hola a todos, tengo una pequeña (¿?) duda. a ver si alguien me puede ayudar.

Recibo en una dll un parametro / Objeto del tipo pointer y necesito saber las funciones / procedimientos que tiene ese objeto, vamos una lista de ellas.

Se el tipo de objeto que es ... pero no tengo acceso al programa llamador y necesito acceder a valores de ese objeto o a procs, funciones.

¿ Se puede hacer ?

El problema es que el programa llamador se hizo con unos componentes de terceros antiguos ( no tengo los fuentes ) y la dll con esos mismos componentes pero los nuevos.

Evidentemente las estructuras son diferentes y necesito ver valores contenidos en el objeto que me pasan un pointer.

Es dificil o imposible ?? O es una tontería y no loa conozco.

Gracias.

ecfisa 10-02-2015 20:27:11

Hola avmm2004.

A partir de Delphi 2010, con RTTI extendido, podrías intentar obtener esa información ( Get list of object's methods, properties and events? ). Pero con versiones anteriores sólo podrás obtener una lista reducida a los métodos publicados.

Saludos :)

avmm2004 11-02-2015 15:21:18

Gracias ecfisa. Hice pruebas en delphi xe2 y funcionó perfectamente ..... pero cuando lo probe con el puntero que me venía (pointer) desde la dll falló.
Main program (delphi 7) ---> dll en delphi xe2

Yo creo que el problema es que yo solo tengo control en la dll y el programa que me envía el pointer (objeto) creo que se hizo en en delphi 7.

Gracias de todas formas.

Ñuño Martínez 11-02-2015 15:37:35

El problema con la DLL es que, para que funcione la sugerencia de Ecfisa, la aplicación también debe contener la información apropiado (lo que es lo mismo, compilado con RTTI). Si no lo está, no te servirá de nada.


La franja horaria es GMT +2. Ahora son las 10:43:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi