📄 20000726007.htm
字号:
end; <br>
/============================================== <br>
function OpenSample: Boolean; stdcall; export; <br>
begin <br>
HwCtrl:= Sample1.Create(temp1); <br>
If Sample1.Actived then result:=true; <br>
end; <br>
<br>
procedure CloseSample; stdcall; export; <br>
begin <br>
Sample1.Destroy; <br>
end; <br>
<br>
function Actived: Boolean; stdcall; export; <br>
begin <br>
result:=Sample1.Actived; <br>
end;
<p align="left">
function Pro1: Interger; stdcall; export; <br>
begin <br>
result:= Sample1.Pro1; <br>
end;
<p align="left">
function Pro2: Interger; stdcall; export; <br>
begin <br>
result:= Sample1.Pro2; <br>
end; <br>
/============================================== <br>
procedure libexit; far <br>
begin <br>
if Sample1.Actived =true then <br>
Sample1.Destroy; <br>
ExitProc:=SaveExit; <br>
temp1.Destroy; <br>
end; <br>
exports <br>
OpenSample,CloseSample,Actived ,Pro1,Pro2; <br>
begin <br>
temp1:=TTempcomp.Create1; <br>
SaveExit:=ExitProc; <br>
ExitProc:=@libexit; <br>
end.
<p align="left">
<p align="left"> 解 释: <br>
因为VCL控件都继承于TComponent,TComponent的构造函数需要一个AOwner并且也是Component,VCL控件的Create、Destroy 都由控件的拥有者来动作,也就是AOwner;
所以我在此DLL中新设置了一个TTempcomp 类继承于Tcomponent且性设置了一个constructor(构造函数)Create1, 而实际构造时什么都不做,以次作为要Create的Aowner;
<p align="left"> 其他还有一种办法就是用Application 作为Aowner但是它是基于Tform的作出来的DLL太大;
<p align="left"> 其实,Inprise( 原Borland)尽可以象MicroSoft一样用一些象DCOM类似的组件形式使得产品在同一产品时代保持一定的互用性,来增加产品群的生命力.</p>
</td>
</tr>
</table>
</div>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -