Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-12-2014
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
en este caso tiene sentido, es util y estáimplementado en la ocx. La ocx es de pago pero se puede usar gratis para uso no comercial y la unica limitacion es una nag que te dice que fue creada con la version sin licencia pero funciona perfectamente. Que la app no use sus metodos no significa nada, trae metodos para exportar, guardar, y muchisimos mas, ya hice una prueba y va perfecto en mi aplicacion pero claro, yo le paso el puntero a la funcion de mi dll y mi dll hace TAddFlow *af=(TAddFlow*)puntero; y luego hago af->SaveImage("imagen.wmf");. El problema está en obtener el puntero cuando se hace con otra app que solo tengo el binario.
Responder Con Cita
  #2  
Antiguo 27-12-2014
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
despues de mucho tracear mi aplicacion de ejemplo veo que usa AddRef y que al entrar en ella, en ESP+0xC tengo lo que busco. El caso es que ahi para continuamente y no es un lugar apropiado para obtener lo que quiero aunque alguien me dijo que podria ir asignando dicho valor a mi puntero y dentro de un manejador probar a ejecutar un metodo o propiedad y si funciona bien es el valor correcto y si no pues no lo es. El caso es que he leido que AddRef es un metodo de los objetos COM y que lo que hace es aumentar el contador de referencias a la interface. Segui buscando y lei que QueryInterface necesita dos parametros, el primero un identificador que no se que tipo será y el segundo es donde recupera el puntero a la interface. El caso es que no he podido probar si llama a QueryInterface para ver si por ahi puedo obtener lo que busco por falta de tiempo (a ver si puedo el lunes) pero me surge una duda, el control es ActiveX, AddRef y QueryInstance son metodos de objetos COM, y AddRef pude ver que es llamada desde algo como COleImport o algo asi ¿ActiveX, COM, y OLE son lo mismo? Es que lo que he podido leer no me deja nada claro.

Última edición por aguml fecha: 27-12-2014 a las 10:41:57.
Responder Con Cita
  #3  
Antiguo 29-12-2014
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.025
Poder: 27
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por aguml Ver Mensaje
¿ActiveX, COM, y OLE son lo mismo? Es que lo que he podido leer no me deja nada claro.
Sí y no. Si no recuerdo mal, ActiveX y COM son versiones más avanzadas de OLE, o sea, que están basados o inspirados en OLE. Por otro lado, los tres protocolos te permiten usar componentes de otras aplicaciones o controlar otras aplicaciones.
Responder Con Cita
  #4  
Antiguo 29-12-2014
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
entonces doy por hecho que FindControl no funciona con objetos OLE y supongo que FindComponent tampoco servirá. ¿Que se usa entonces para los ActiveX? He estado leyendo que CoCreateInstance crea una instancia y nos da el puntero a la instancia pero la aplicacion no la usa y supongo que es porque se crea en tiempo de diseño ya que es un componente visual. El nombre del componente en la otra aplicacion no lo tengo pero si en mi aplicacion de prueba asi que podria probarlo en la mia solo. Ni spy++, ni Resource tuner ni nada me dan el nombre del componente asi que no puedo ni intentarlo. Sabeis alguna manera de conseguir el puntero pero para un ActiveX?
Encontre esto: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
¿Es lo que necesito? Y si es asi ¿Podeis ayudarme a entender como usarla? Es que mi ingles es malisimo y ademas hay cosas que no se ni a que se refieren.

Última edición por aguml fecha: 29-12-2014 a las 17:40:51.
Responder Con Cita
  #5  
Antiguo 02-01-2015
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
problema solucionado amigos. Explico la solucion. Me cree una dll en c++builder con las funciones necesarias y luego la cargué en el proceso. La aplicacion usa QueryInterface asi que con poner un bp ahi obtengo el puntero al objeto el cual almaceno. Luego llamo a las funciones de la dll y funciona asi que pruebo con la aplicacion echa en vb y veo que da errores y no sirve por lo que empiezo apensar que no se puede usar esta dll en vb y pido a un amigo que me cree una dll en vb con las mismas funciones y la pruebo y funciona sin problemas. Ahora me encontraba con otro problema, la imposibilidad de usar LoadLibrary, GetModuleHandle, y GetProcAddress para cargar mi dll dinamicamente. Entonces miré las funciones de la dll en un depurador y veo que las unicas constantes que habria que modificar serian la llamada a una funcion de vb que viene en la iat y el puntero a ruta del proceso. Entonces pensé ¿Que pasaria si usase VirtualAllocEx para solicitar la memoria necesaria y luego copio las funciones a esa zona, redirijo el puntero de la ruta del archivo y inyecto codigo para ejecutar cada funcion.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Handle de objetos juank1971 OOP 2 09-06-2012 19:10:54
Asignando procedemientos a eventos. yapt Lazarus, FreePascal, Kylix, etc. 2 28-05-2010 12:23:11
TComponent y Handle ixMike OOP 5 12-10-2007 13:45:52
Problemas asignando passwords a usuarios kman Varios 2 16-07-2006 20:53:16
Obtener Handle de un objeto senpiterno Varios 6 22-04-2004 15:21:40


La franja horaria es GMT +2. Ahora son las 15:17:36.


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