接口基类IUnknown(Interface)整型变量引用计数FRefCount(整型变量)初始化的疑惑
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
IFormattedNumber = interface
function FormattedString : String;
end;
TFormattedInteger = class(TObject,IFormattedNumber)
private
FValue : Integer;
FRefCount : Integer;//引用计数
public
constructor Create(AValue : Integer);
//IUnknown 接口
function QueryInterface(const IID : TGUID;out Obj): HResult; stdcall;
function _AddRef : Integer; Stdcall;
function _Release : Integer; stdcall;
//IFormattedNumber 接口
function FormattedString : String;
procedure SetValue(AValue : Integer);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
constructor TFormattedInteger.Create(AValue : Integer);
begin
inherited Create;
FValue := AValue;
end;
function TFormattedInteger.QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
const
E_NOINTERFACE = $80004002;
begin
if GetInterface(IID,Obj) then
Result := 0
else
Result := E_NOINTERFACE;
end;
function TFormattedInteger._AddRef: Integer;stdcall;
begin
Inc(FRefCount);
Result := FRefCount;
end;
function TFormattedInteger._Release: Integer; stdcall;
begin
Dec(FRefCount);
Result := FRefCount;
If FRefCount = 0 then
Destroy;
end;
//IFormattedNumber接口
function TFormattedInteger.FormattedString : String;
begin
Result := 'The value is' + IntToStr(FValue);
end;
procedure TFormattedInteger.SetValue(AValue : Integer);
begin
FValue := AValue;
end;
end.
使用接口时貌似FRefCount初始值为0,这样Inc(FRefCount)=1,Dec(FRefCount)=0 接口使用完了后才能释放,但小弟在bottonclick事件中显示一个未初始化整型变量发现其值貌似不定,望大虾不吝赐教,帮小弟解惑,3Q
ps:小弟初学delphi 若犯了啥低级错误欢迎大虾们批评指出 嘿嘿
相关推荐
产业园区如何高效对接企业技术需求与高校科研成果?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)
数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.csdn.net/mtl1994
YOLOv8作物病害检测实战源码
这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。


语言基础/算法/系统设计

