主题:EXE + BPL + DLL + Interface实现插件式客户端解决方案

简介: 时间:2005-02-25(星期五) 15:00(下午三点) 主题:浅谈怎样利用EXE + BPL + DLL + Interface实现插件式客户端解决方案 地点:群号:5726882(煮茶待英雄会议室) 主讲:A1.烟灰缸、D10.天地弦 技术支持:A3.武稀松(王锐) 2005-02-25 14:55:52 /:>D10.天地弦(185511468) 先来一点对象的基础知识润润 2005-02-25 14:56:38 /:>D10.天地弦(185511468) 这个是献给初学者的。

时间:2005-02-25(星期五) 15:00(下午三点)
主题:浅谈怎样利用EXE + BPL + DLL + Interface实现插件式客户端解决方案
地点:群号:5726882(煮茶待英雄会议室)
主讲:A1.烟灰缸、D10.天地弦
技术支持:A3.武稀松(王锐)


2005-02-25 14:55:52 /:>D10.天地弦(185511468)
先来一点对象的基础知识润润

2005-02-25 14:56:38 /:>D10.天地弦(185511468)
这个是献给初学者的。

2005-02-25 14:57:28 /:>D10.天地弦(185511468)
ObjectKnowledge.JPG

2005-02-25 14:59:03 /:>D10.天地弦(185511468)
上图中A.Free,是将实例内存释放。A实际上是一指针。指向实例内存块。A.Free后A并不是为nil;A仍然记录,

实例内存块的地址(虽然内存已经释放),就像锁被砸碎了,钥匙依然还在(还是指向那把锁)一样。
所以在使用if Form1 = nil来判断Form1对象实例已经建立时要注意。

对象间的赋值(B:=A)只是将对象地址就是指针的赋值,将A实例地址赋值给B,B也是指向那块地址。
 
2005-02-25 14:59:29 /:>D10.天地弦(185511468)
我讲得可能不对,请高手帮忙指正

2005-02-25 14:59:41 /:>D10.天地弦(185511468)
结合图,看

2005-02-25 15:00:00 A3.武稀松(42088303)
Delphi中的类类型变量实际上都是指针,是对象的引用

2005-02-25 15:00:27 /:>D10.天地弦(185511468)
我们经常判断窗体有没有建立,一般用
if Form1 = nil then
begin
  没有建立
end;

2005-02-25 15:00:46 D3天之痕若虹(86278566)
if not assigned() then 

2005-02-25 15:01:14 /:>D10.天地弦(185511468)
assigned也是判断对象是不是为nil

2005-02-25 15:01:16 Max.Free/mg(24634631)
内存释放不等于指针也清空

2005-02-25 15:01:21 /:>D10.天地弦(185511468)
y

2005-02-25 15:01:34 D3天之痕若虹(86278566)
freeandnil()时, a才为nil

2005-02-25 15:01:43 C01.枫长舞(273966879)
D3天之痕若虹(86278566) 15:00:46
if not assigned() then 
---有时这样判断也会出错。

2005-02-25 15:01:44 /:>D10.天地弦(185511468)
上图中A.Free,是将实例内存释放。A实际上是一指针。指向实例内存块。A.Free后A并不是为nil;A仍然记录,

实例内存块的地址(虽然内存已经释放),就像锁被砸碎了,钥匙依然还在(还是指向那把锁)一样。
所以在使用if Form1 = nil来判断Form1对象实例已经建立时要注意。
对象间的赋值(B:=A)只是将对象地址就是指针的赋值,将A实例地址赋值给B,B也是指向那块地址。
--------------------------
上面的图懂了这几句就参不多了


2005-02-25 15:01:49 A3.武稀松(42088303)
A3.武稀松(42088303) 15:02:53
Delphi中的类类型变量实际上都是指针,是对象的引用
,其实讲了这么久说是面向对象知识.其实都是指针的知识而已.D10命题不准

2005-02-25 15:02:14 /:>D10.天地弦(185511468)
好了,开始正题吧

2005-02-25 15:02:23 B1.斜阳(249208513)
建议大家以后释放对象的时候多使用FreeAndNil这个函数

2005-02-25 15:02:25 /:>D10.天地弦(185511468)
回家慢慢品味一下就行了

2005-02-25 15:03:45 A3.武稀松(42088303)
如果是组件的派生类注意在Notifiction方法就行了

2005-02-25 15:04:00 /:>D10.天地弦(185511468)
刚刚是送的

2005-02-25 15:04:02 /:>D10.天地弦(185511468)
现在开始

2005-02-25 15:04:39 /:>D10.天地弦(185511468)
BPL + DLL + EXE

2005-02-25 15:05:11 /:>D10.天地弦(185511468)
一个大的项目一般要分成几个模块

2005-02-25 15:05:44 /:>D10.天地弦(185511468)
先问一下

2005-02-25 15:06:09 /:>D10.天地弦(185511468)
有谁用DLL来开发模块

2005-02-25 15:06:17 dirk/:;(342998661)

2005-02-25 15:06:18 Max.Free/mg(24634631)
[v]

2005-02-25 15:06:19

目录
相关文章
|
5月前
|
安全 测试技术 C++
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
最近用到了gRPC,配置了很长时间,分享一下配置过程。先来看一下我准备的文件包(资源我放在最后)
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
|
5月前
|
Unix Linux C#
使用 ABAP + OLE 消费 Windows DLL 文件里的代码和服务
使用 ABAP + OLE 消费 Windows DLL 文件里的代码和服务
27 0
|
XML 数据格式
Revit两种外部接口的插件注册文件addin
Revit两种外部接口的插件注册文件addin
|
小程序 C# Windows
|
C++ Windows
好工具推荐系列:Dependencies。可以解决MFC运行出错:应用程序无法正常启动0xc000007b
好工具推荐系列:Dependencies。可以解决MFC运行出错:应用程序无法正常启动0xc000007b
716 0
好工具推荐系列:Dependencies。可以解决MFC运行出错:应用程序无法正常启动0xc000007b
|
Windows 开发工具 git
win10 uwp 访问解决方案文件
原文:win10 uwp 访问解决方案文件 本文讲如何访问解决方案资源管理器的文件(文件属性->生成操作->内容)。 我们经常会把一些图片资源放在我们的解决方案,那么从这里拿出来很简单。 我在 Assets 放了图片 1.
871 0
|
API
使用批处理根据项目工程文件生成Nuget包并发布(支持.NET Core)
最近在使用之前自己编写的批处理给.NET Core项目打包时出问题了,发现之前的脚本根本不适用了,折腾了半天,总算解决了。因此在这里分享下经验,并且奉上整理好的脚本。 Nuget包这里就不多介绍了,需要了解的请访问:https://docs.microsoft.com/zh-cn/nuget/ 下面开始本篇教程。
1453 0