M
mill666
Unregistered / Unconfirmed
GUEST, unregistred user!
我在delphi里面新建一个package1,然后编译安装后生成包package1.bpl;这个包里面有一个单元pubfunc.pas,
里面有一个过程dispmsg,如下:
unit pubfunc;
interface
uses dialogs,unit1;
procedure dispmsg;
implementation
procedure dispmsg;
begin
showmessage('****');
end;
end.
然后我新建一个application,在form1上放置一个按钮button1,button1的onclick事件如下:
type
TProc = procedure;
var
pk: HModule;
pp:TProc;
begin
pk:=LoadPackage('Package1.bpl');
@pp:=GetProcAddress( pk, 'dispmsg' );
if @pp<>nil then
pp
else
showmessage('program is nil');
UnloadPackage(pk);
end;
最后编译成一个project1.exe,执行,发现返回的pp是个nil,也就是执行了 showmessage('program is nil'),而不是执行了
包里面的dispmsg?
请问这是为什么??为什么它找不到过程dispmsg??
里面有一个过程dispmsg,如下:
unit pubfunc;
interface
uses dialogs,unit1;
procedure dispmsg;
implementation
procedure dispmsg;
begin
showmessage('****');
end;
end.
然后我新建一个application,在form1上放置一个按钮button1,button1的onclick事件如下:
type
TProc = procedure;
var
pk: HModule;
pp:TProc;
begin
pk:=LoadPackage('Package1.bpl');
@pp:=GetProcAddress( pk, 'dispmsg' );
if @pp<>nil then
pp
else
showmessage('program is nil');
UnloadPackage(pk);
end;
最后编译成一个project1.exe,执行,发现返回的pp是个nil,也就是执行了 showmessage('program is nil'),而不是执行了
包里面的dispmsg?
请问这是为什么??为什么它找不到过程dispmsg??