一、我想用无窗体的程序调用一个DLL(登录窗体),如果写主调用程序?
二、登录身份验证通过后再调用另一个DLL(导航台),其中导航台有个“注销”功能,即回到主调用程序,重新调用DLL(登录窗体),这又如何实现?不知道我的叙述大家都明白没有,还请大家多多帮忙,谢谢各位!
二、登录身份验证通过后再调用另一个DLL(导航台),其中导航台有个“注销”功能,即回到主调用程序,重新调用DLL(登录窗体),这又如何实现?不知道我的叙述大家都明白没有,还请大家多多帮忙,谢谢各位!
解决方案 »
- if else 语句里else后面能不能一起执行同一if条件下成立的多条语句?
- 急!帮看一个错误!!!!!!!!!!!!!!!!!!!!!!!!!!!
- FastReport 动态分页
- EXpress DBEditor5底下的cxDBLookupComboBox控件怎么用
- 再送100分,。单刀侠进来拿分啊。。
- 报表统计问题:有一个字段“分数”,我如何统计不及格人数?
- 紧急求助:cxGrid在日期过滤中添加新的类型该如何修改?
- 小弟有事问。。。。
- Hook的制作
- 请问delphi(VCL)中有没有类似Mfc中Update_Command_UI的机制?
- WaitForMultipleObjects死锁
- 为什么会出现debugger fault notification出错
Application.Initialize;
Application.Run;
Dll := LoadLibrary('DllLogin.dll');
if Dll < 32 then
begin
Application.Terminate;
end;
ShowModalFormByClassName('TSysLoginForm');//自定义的一个函数
//登陆成功后:LoadLibrary('DllMain.dll');
FreeLibrary(Dll);
end
这是我写的EXE+BPL+Dll的程序,
因为DLL不能实现DLL部窗体继承和注册窗体类,所以我用到了BPL来嵌入。
当然,如果你不用到窗体继承和注册窗体类的话,可以不用BPL。
Visible := False;//隐藏主窗口
Dll := LoadLibrary('DllLogin.dll');
if ShowModalFormByClassName('TSysLoginForm') = mrOk then
begin
//登陆成功事件。
FreeLibrary(Dll);
Visible := true;//显示主窗口
end
//因为我做的是数据库应用程序开发,很多地方各个DLL都要共同继承一个窗口,和注册类。所以用了BPL,所以并不是完全的DLL开发。ShowModalFormByClassName这是BPL中的一个函数,提供个思路参考下。你可以参考:关于一个项目的总结 ( EXE+BPL+DLL 模式)
http://www.cnblogs.com/long6/articles/2098182.html我的做法就类似于这个。
还有就是不同的dll之间共享数据是如何实现的
Visible := true;//Application.CreateForm(TForm1, Form1);
Form1.Show();改成这样就可以了但如果要实现纯DLL的话,DLL间参数传递等,这点我也还不怎么清楚