有关于DLL中Datamodule的使用
来源:互联网 发布:剑灵捏脸数据灵族女 编辑:程序博客网 时间:2024/04/30 18:33
====================================================
1。比较多讲到的就是说像TForm一样的使用,但是说道的通常都
只是在一个函数中create,然后立即free,如果多过一个函数用到
的则没有例子。DM中的控件通常都不是只在一个函数中使用的,
而且函数的调用顺序不一定固定,无办法写定在哪个函数中create,
然后那个函数中free。
=================================================
2。有些提到可以通过在initialization和finalization中处理。
(好像不行啊?)
initialization
if not Assigned(Dmmain) then DMMain :=TDMMain.Create(Application);
finalization
if Assigned(Dmmain) then
begin
DMMain.Free;
end;
===========================================
3。有的就提到可以在DLLProc 中进行处理
在dll的DLLMAIN函数内创建和释放DataMoudle,如:
procedure DLLMain(dwReason:DWORD);
begin
case dwReason of
DLL_PROCESS_DETACH :
begin
if Dm <> nil then
begin
Dm:=nil;
end;
end;
DLL_PROCESS_ATTACH :
begin
if not Assigned(Dm) then
Dm:=TDm.Create(Application);
end;
DLL_THREAD_ATTACH :
begin
end;
DLL_THREAD_DETACH :
begin
end;
end;
end;
{$R *.RES}
begin
DLLProc := @DLLMain;
DLLMain(DLL_PROCESS_ATTACH);
end.
end
==============================================
4。一些则讲到可以不用自己销毁,系统会自动销毁。
(Application是不是还需要在程序外传进来的?)
1)创建时:
"用DLL把Datamodule打包,只要在DLL的入口初始化Datamodule就好了."
//dll主程序
library erpsend;
uses
SysUtils,
Classes,
Forms,
DMDatain DMData.pas' {DM: TDataModule};
{$R *.res}
exports
begin
Application.CreateForm(TDM, DM);
end.
2)销毁情况:
"不需要自己手动调用,DLL卸载时会自动Free,不相信可以在DM.OnDestroy
中写点代码,然后调试再一下看,结果是会执行到OnDestroy的!"(不知道是不是可行?)
=============================
不要在DLL_PROCESS_ATTACH 中销毁
可以在DLL另外创建两个过程或函数负责创建和销毁数据模块
主程序启动时先调用创建数据模块的过程,关闭时再销毁(务必在FreeLibrary之前销毁)
=============================
1.在 use 中加入 ActiveX
2.在 implementation 下加入下列程式碼:
initialization
Coinitialize(nil);
finalization
CoUninitialize;
- 有关于DLL中Datamodule的使用
- Delphi怎样在Dll中使用数据模块DataModule
- 浅谈在Delphi中Dll调试方法以及怎样在Dll中使用数据模块DataModule(或表单Form)
- 有关于sizeof的使用
- 有关于psExec的使用
- 有关于SlidingUpPanelLayout的使用
- 有关于Java中import使用
- jsp中有关于超链接的问题
- oracle中有关于字符串的问题。
- 有关于数据中选择的问题
- html中有关于submit的笔记
- 有关于mfc webbrowser插件的使用
- 有关于mfc webbrowser插件的使用
- 有关于objectdatasource的
- 有关于apktool的使用的一些心得
- [我的ASP.net学习历程]有关于.dll文件的迷惑
- [我的ASP.net学习历程]有关于.dll文件的迷惑
- 有关于Java中栈与堆的思考
- S3C6410bootloarder移植
- 课税猛于虎也
- 一组数字的全排列按序输出
- 全局热键管理工具
- Linux下安装配置Android开发环境
- 有关于DLL中Datamodule的使用
- 电位器
- inner join, left join, right join,all join区别
- java字符串应用之字符串编码转换
- 求助,紧急求助
- 本地apache解析多域名,多主机
- HDU 2773 White Water Rafting(计算几何)
- OSI 7层参考模型
- 好久不见