【96刻 网校系统 源码】【traceroute程序源码】【夏普电视 源码】delphi dll 源码

时间:2024-11-08 12:11:04 编辑:选择pcm还是源码 来源:bc话费通道源码

1.delphi dll窗体返回主程序窗体
2.Delphi中DLL调用后如何完全释放

delphi dll 源码

delphi dll窗体返回主程序窗体

       DLL中窗体的Owner是什么?还有窗体的构造函数是怎么写的?“如果想从DLL窗体中返回主程序窗体”这句不是十分理解,能解释一下吗? 追问: DLL中窗体的Owner 没有我想的是 DLL窗体显示出来以后 如果密码错误等问题 要返回登陆窗体 登陆窗体是调用该DLL的dll:procedure showform(LL_id:string);beginApplication.CreateForm(TFuser_list, Fuser_list);fuser_list.Caption:=ll_id+'在线';my_id:=ll_id;Fuser_list.Show ;//连接数据库 获取好友列表end; 回答: DLL构造窗体的时候最好把主窗体的指针作为Owner:TComponent传递过来,然后你可以通过use主窗体操作主窗体(Owner)了var Fuser_list:TFuser_list;begin Fuser_list := TFuser_list.Create(Owner);end; 补充: 你也可以把DLL构造出来的窗体指针返回给主窗体的。不好意思Dephi不怎么会用,原理是这样的,代码上帮不上太多。 追问: 什么是use主窗体? 如果主窗体已经释放了? 还能再显示出来? 回答: 把主窗体的.pas拷贝到dll目录下,然后use主窗体类,在DLL的窗体就可以操作主窗体里的元素了啊 主窗体释放Application就结束了吧,DLL的窗体也会关掉的 补充: 等下我得找找,以前做过一个C++Builder的 补充: int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved){ return 1;}//---------------------------------------------------------------------------extern "C" __declspec(dllimport) TForm * __stdcall ShowLogonForm(TComponent* Owner);//---------------------------------------------------------------------------

Delphi中DLL调用后如何完全释放

       Delphi有静态加载Dll和动态加载Dll,静态加载的Dll不用我们释放;动态加载需要我们自己释放;

       这里只附上动态加载DLL的释放(此处Dll和Exe程序在同一路径下):

       procedure TForm1.Button2Click(Sender: TObject);

       var MyHandle:THandle ;

       FPointer:Pointer;

       MyDll_Func: function (s:string):Integer;stdcall;

       begin

       try

       try

       MyHandle:=LoadLibrary('project1.Dll') ;

       if MyHandle<>0 then

       begin

       FPointer:=GetProcAddress(MyHandle ,PChar(Edit1.text));

       if FPointer<>nil then

       begin

       MyDll_Func:=FPointer;

       MyDll_Func(Edit1.text) ;

       end

       else

       ShowMessage('此'+Edit1.text+'方法,在project1.Dll中不存在');

96刻 网校系统 源码

       end

96刻 网校系统 源码

       except

96刻 网校系统 源码

       showmessage('加载project1.Dll异常');

96刻 网校系统 源码

       end;

96刻 网校系统 源码

       finally

96刻 网校系统 源码

       FreeLibrary(MyHandle) ;

96刻 网校系统 源码

       end;

96刻 网校系统 源码

       end;

96刻 网校系统 源码