Ver Mensaje Individual
  #3  
Antiguo 08-11-2007
Avatar de walito
walito walito is offline
Miembro
 
Registrado: jun 2005
Posts: 121
Reputación: 19
walito Va por buen camino
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:

Código Delphi [-]
function TModules.getMainMenu(moduleName: string): PChar;
var
  FuncGetMainManu: TGetMainMenu;
  menuName: PChar;
begin
    menuName := nil;

    {* verifico que el modulo existe, junto con el archivo *}
    if FileExists(ExtractFilePath(ParamStr(0))+moduleName) then
    begin
        {* Cargo el modulo a memoria *}
        handle := LoadPackage(ExtractFilePath(ParamStr(0))+moduleName);

        {* si es un modulo válido *}
        if handle <> 0 then
        begin
            try
               {* llamo el modulo *}
               @FuncGetMainManu := GetProcAddress(handle,'getMenu');

               if Assigned(FuncGetMainManu) then
               begin
                    {* extraigo el nombre del menu principal *}
                    Result := FuncGetMainManu;
                end
                else
                    Result := menuName;
            finally
                {* libero memoria *}
                UnloadPackage(handle);
            end;
        end
        else
            Result := menuName;
    end
    else
        Result := menuName;
end;

esta es mi funcion de la bpl
Código Delphi [-]
function getMenu: PChar;
begin
    Result := PChar('test');
end;

exports
getMenu;


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.
Responder Con Cita