arantzal
14-12-2004, 14:21:26
Buenas, estoy peleándome con las librerías y no lo consigo, espero que alguien me pueda echar una mano.
La cuestión es que quiero acceder a un procedimiento que exporto en una librería. La aplicación no me hacía nada y he capturado la excepción y es la siguiente : "Object reference not set to a instance of an object" y no se como solucionarlo.
Os muestro un poco de código:
--- la librería.
library Gestionar;
{$UNSAFECODE ON}
{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Drawing.dll'}
uses
SysUtils, Dialogs...;
{$R *.RES}
var frm : TfrmGestion;
procedure GestionarUsuarios(IdUsuario: integer; ColorFondo: TColor;
CadenaConexion_L, CadenaConexion_Ex: string;
Admin: Boolean);
begin
showmessage('prueba 0');
frm := TfrmGestion.Create(nil);
frm.Color := ColorFondo;
.........
frm.Visible := true;
frm.Handle;
while (frm.HandleAllocated) do
Application.ProcessMessages;
end;
exports
GestionarUsuarios;
begin
end
-- La llamada a la librería:
......
HandlePacksGes := LoadLibrary('Gestionar.dll');
if HandlePacksGes <> 0 then
begin
CanAnimate := GetProcAddress(HandlePacksGes,
'GestionarUsuarios') <>nil;
if CanAnimate then
begin
try
GestionarUsuarios(IdUsuario, col,
ConexionADO.CadenaConexion,
Cadena, true);
except
on E : Exception do
begin
MessageDlg(E.Message, mtError,[mbOK],0);
end;
end;
Al ejecutar, entra en GestionarUsuarios pero no me saca ni el showmessage que he puesto al inicio de este procedimiento. Alguna idea de xk puede ser?..
Gracias de antemano.
La cuestión es que quiero acceder a un procedimiento que exporto en una librería. La aplicación no me hacía nada y he capturado la excepción y es la siguiente : "Object reference not set to a instance of an object" y no se como solucionarlo.
Os muestro un poco de código:
--- la librería.
library Gestionar;
{$UNSAFECODE ON}
{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Drawing.dll'}
uses
SysUtils, Dialogs...;
{$R *.RES}
var frm : TfrmGestion;
procedure GestionarUsuarios(IdUsuario: integer; ColorFondo: TColor;
CadenaConexion_L, CadenaConexion_Ex: string;
Admin: Boolean);
begin
showmessage('prueba 0');
frm := TfrmGestion.Create(nil);
frm.Color := ColorFondo;
.........
frm.Visible := true;
frm.Handle;
while (frm.HandleAllocated) do
Application.ProcessMessages;
end;
exports
GestionarUsuarios;
begin
end
-- La llamada a la librería:
......
HandlePacksGes := LoadLibrary('Gestionar.dll');
if HandlePacksGes <> 0 then
begin
CanAnimate := GetProcAddress(HandlePacksGes,
'GestionarUsuarios') <>nil;
if CanAnimate then
begin
try
GestionarUsuarios(IdUsuario, col,
ConexionADO.CadenaConexion,
Cadena, true);
except
on E : Exception do
begin
MessageDlg(E.Message, mtError,[mbOK],0);
end;
end;
Al ejecutar, entra en GestionarUsuarios pero no me saca ni el showmessage que he puesto al inicio de este procedimiento. Alguna idea de xk puede ser?..
Gracias de antemano.