FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Problemas con GetProcAddress
Buenas tengo un problemilla que no se a que se debe.
Tengo la funcion que esta mas abajo que lo que hace es levantar una libreria BPL, hasta aca todo bien sin problemas, de esta libreria necesito llamar a una funcion que solo me retorna un STRING, hasta aca todo bien. Resulta que cuando hago menuName := FuncGetMainMenu; y despues hago un UnloadPackage(handle); explota con error de memoria, si no hago el UnLoad todo bien, pero si o si necesito liberar esa memoria, que puede ser? Hay que liberar memoria de aca FuncGetMainMenu ? yo mas que nada necesito poder llamarlo varias veces asi, por eso hice esa funcion, pero explota al liberar. modulos.getSubMenu('mimodulo1.bpl', string1 ); modulos.getSubMenu('mimodulo2.bpl', string2 ); modulos.getSubMenu('mimodulo3.bpl', string3 ); Gracias Dejo algo del codigo aca:
Codigo de la funcion:
Última edición por walito fecha: 07-11-2007 a las 21:17:17. |
#2
|
||||
|
||||
Hola,
Advierto de que muy probablemente esté equivocado, pero, ¿no tendrá algo que ver con el uso de "string" como resultado de la función? Tal vez debería usarse "PChar", o, en su defecto, hacer caso al "aviso" que aparece cuando inicias un nuevo proyecto de DLL en Delphi:
Ya digo que tengo la impresión de que el problema no va por ahí, pero,... no sé... |
#3
|
||||
|
||||
DEC!! sos groso. Sabes que nunca le di pelota a ese cartel, y tenias razon, en la libreria BPL cambie a que la funcion exportada retornara un PChar y andubo todo bien.
EDITADO -------- Te comento que dentro de la funcion que tenia problemas se solucionaron, te muestro la funcion:
esta es mi funcion de la bpl
Pero ahora cuando intento usar el PChar que me retorno la funcion me da error de memoria, y ya no se ni como castearlo, probe de barias formas y nada, tambien lo depure linea por linea y la funcion me retorna bien al parecer, pero la variable a la que le asigne dicho retorno no la puedo inspeccionar y si hago un showmeesage o messagebox da error de memoria. Alguna sugerencia? Gracias Dec. Última edición por walito fecha: 08-11-2007 a las 14:25:14. |
|
|
|